Laravel 5 GET api调用正在工作,但POST api调用不工作
如何在laravel中禁用API路由上的CSRF验证 在API路由中,我通过POST和GET方法调用函数。GET method返回数据,但找不到POST方法引发的方法异常 下面是我在routes/api.php中的示例代码 对于GET call,我得到了预期的响应。 我得到了这个例外 信息:, 异常:Symfony\Component\HttpKernel\exception\MethodNotAllowedHttpExceptionLaravel 5 GET api调用正在工作,但POST api调用不工作,laravel,laravel-5,eloquent,laravel-5.2,Laravel,Laravel 5,Eloquent,Laravel 5.2,如何在laravel中禁用API路由上的CSRF验证 在API路由中,我通过POST和GET方法调用函数。GET method返回数据,但找不到POST方法引发的方法异常 下面是我在routes/api.php中的示例代码 对于GET call,我得到了预期的响应。 我得到了这个例外 信息:, 异常:Symfony\Component\HttpKernel\exception\MethodNotAllowedHttpException "file": "/var/www/html/vendor/
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 255,
"trace": [
{
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 242,
"function": "methodNotAllowed",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"
},
{
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 176,
"function": "getRouteForMethods",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"
},
我还在verifycsrf.php中添加了api路由,根据文档,它应该可以工作,不幸的是它对我不起作用。
这是我的verifycsrf.php
API测试截图
引发问题的POST请求
获取工作正常的请求
这仍然不起作用。任何人都可以帮助我。谢谢你检查你发布的表单方法,该方法很可能是GET方法,但是在你的路由文件中,你已经将其配置为一个POST方法。深入研究,我发现这从来不是一个laravel问题,而是由于HTTP到HTTPS重定向而导致的。
将http更改为https后,问题似乎再次出现: 您确定正在使用POST方法吗。第242行的函数是GET MethodNotAllowedHttpException,这意味着您的请求不正确,您可能在路由需要GET时发出POST,反之亦然。默认情况下,api路由不通过CSRF中间件。是的,我正在发出post请求。我正在用postmanTry测试,将_方法作为POST添加到您的请求中。参见文档这是api调用无法添加_方法这是一个api调用没有表单提交,我正在与PostMan测试api请分享一段如何调用路由的代码片段Hi,我用我的APIC屏幕截图更新了问题用get request屏幕截图更新了问题
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 255,
"trace": [
{
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 242,
"function": "methodNotAllowed",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"
},
{
"file": "/var/www/html/vendor/laravel/framework/src/Illuminate/Routing/RouteCollection.php",
"line": 176,
"function": "getRouteForMethods",
"class": "Illuminate\\Routing\\RouteCollection",
"type": "->"
},
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'api/*',
];
}