私はバックエンドとして小さな自己執筆フロントエンド(jQuery)を使用しています。私のフロントエンドには、私のRESTサーバーを呼び出すためのajaxコマンドがあります。 今、クライアントでDELETE
を使用できないという問題に直面しています。これは、HTTPリクエストメソッド(GET
)と一致しないためです。要求の不一致によるスリム3のエラーuri&request method
If your Slim Framework application has a route that matches the current HTTP request URI but NOT the HTTP request method, the application invokes its Not Allowed handler and returns a HTTP/1.1 405 Not Allowed response to the HTTP client.
今はGET
またはPUT
を使用することができますが、私はすでに他のアクションのために宣言されたもののルートを持っているので、それはおそらくありません:
405 Method not allowed. Must be one of: GET, PUT
公式ドキュメントは、それがデフォルトで許可されていないと述べたと言います。
Slim Application Error: The application could not run because of the following error: Details Type: FastRoute\BadRouteException Message: Static route /api/v1/folders/ is shadowed by previously defined variable route /api/v1/folders/(.*) for method GET
// Folder routes
$this->group('/folders', function() {
$this->get('[/{params:.*}]', 'FolderController:index');
$this->post('', 'FolderController:create');
$this->put('[/{params:.*}]', 'FolderController:update');
$this->delete('/[/{params:.*}]', 'FolderController:delete');
})->add('AuthenticateMiddleware');
あなたは私にこの問題を解決する方法についてアドバイスをお願いできますか?私は多くのフレームワークがSlim 3のように振る舞い、を使用するような特定の状況で405 Method not allowed
エラーを投げますが、ブラウザでクリックすることができないので、これはREST世界での一般的な問題ではありませんGET
ですか?私のコメントを1として
リンクをクリックすると失敗したリクエストが発生していますか? ? Slimが正しいコントローラを呼び出すためには、要求メソッドは「DELETE」でなければなりません。また、あなたの削除ルートには余分な '[' ' –
@AlexandruUngureanuがあります。あなたが' 'を削除した後、私のAjax' DELETE'で作業を開始したので、あなたはワシ目を持っています。小さな投稿をしてください、私はあなたの答えを受け入れるでしょう!ありがとうございました! – Magiranu