2016-10-21 3 views
0

Ich bin mit Codeigniter 3.1.0, Restserver heruntergeladen von here mit Dokumentation von here. Ich verwende auch die Chrome-Erweiterung Postman.Codeigniter 3 + Restserver führt immer Anfrage bekommen

Das Problem ist, dass selbst wenn ich POST aus dem Dropdown-Menü von Postman wählen, ist es die Methode get trifft ... Unten ist der Code:

defined('BASEPATH') OR exit('No direct script access allowed'); 
require APPPATH . '/libraries/REST_Controller.php'; 

class Example extends REST_Controller { 
    function __construct() { 
     parent::__construct(); 
    } 
    public function users_get() { 
     echo "get request"; 
    } 
    public function users_post() { 
     echo "post request"; 
    } 
} 

nun durch Postman, wenn ich wählen GET an die URL example-domain.com/api/example/users die Vorschau ist get Anfrage

Wenn ich wählen POST auf den gleichen URL example-domain.com/api/example/users die Vorschau ist wieder get Anfrage und nicht post request

ich etwas nicht in config/rest.php ändern, und ich bin mit dem implementierten Beispiel des Restservers in Controller/api/example

weiß jemand, warum ich nicht die POST-Methode treffen kann?

+0

das ist seltsam, es sollte automatisch die Route zu den spezifischen Post-Handler – Cristian

+0

genau tun ... und das ist nicht mein erstes Mal mit CI + Restserver ... das ist total seltsam ... – GeorgeGeorgitsis

+0

versuchen, eine saubere Installation von codeigniter zu tun und integrieren Sie die Bibliothek – Cristian

Antwort

0

Endlich fand ich, was das Problem verursachte. Ich hatte zuvor SSL auf dieser Domain installiert, aber ich versuchte, die API mit HTTP aufzurufen.

in .htaccess i hatte die RewriteRule

RewriteRule^https://% HTTP_HOST {}% {REQUEST_URI} [L, R = 301]

HTTPS zu erzwingen.

Wenn ich eine POST-Anfrage mit HTTPS mache, funktioniert es wie ein Charme.

Wenn ich eine POST-Anfrage mit HTTP mache, leitet sie (wegen der Umschreibregel) zu HTTPS um, deshalb gibt es eine neue GET-Anfrage an die neue Seite.