【发布时间】:2018-04-13 04:50:04
【问题描述】:
POST API 路由不起作用真是太奇怪了!
在api.php 中检查这个简单的 POST 路由:
// This route doesn't work!
Route::post('/test', function (Request $request) {
return 'test';
});
它给了我这个错误:Symfony\\Component\\HttpKernel\\Exception\\MethodNotAllowedHttpException!
但是,如果我将请求动词更改为 GET,那么 GET 和 POST 都可以正常工作!!!这让我发疯了!
// This route works on both, GET and POST!
Route::get('/test', function (Request $request) {
return 'test';
});
是的,正如您所知,API 路由根本不使用 VerifyCsrfToken 中间件。所以中间件显然不是问题!而php artisan cache:clear 也不是答案:(
有人遇到过同样的问题吗?任何帮助将不胜感激。
【问题讨论】:
-
听起来很疯狂,但是如果它存在,请尝试从您的请求中删除尾部斜杠,所以不要使用
http://foo.dev/test/尝试http://foo.dev/test -
是的,太疯狂了..我也搜索过,其他人也有这个问题!但是到目前为止没有人能想出一个解决方案......而且也没有斜线。
-
你的 API 怎么样?邮递员、ajax 还是其他?
-
我正在通过邮递员访问 API。
-
听起来您正在重定向。如果您 POST 到一个 url,它返回一个 301/302 重定向,那么对重定向 url 的后续请求将是一个 GET 请求。这就是为什么您的 POST 路由不起作用,以及为什么 POST 到您的 GET 路由起作用的原因。您需要找出导致重定向的原因。您可以使用您的
.htaccess内容以及您点击的网址或邮递员屏幕截图来更新您的问题。