POST窗体上的Laravel MethodNotAllowedHttpException

Fiz*_*izk 5 php laravel laravel-routing

我在Laravel的POST表单中遇到了一个奇怪的问题.

发送帖子请求时,我的Laravel会抛出一个MethodNotAllowedHttpException.在查看错误消息时,我可以看到Laravel认为我的请求是GET请求,但事实并非如此.

在查看错误的POST数据和GET数据时,Laravel似乎认为它们都是空的.这让我有点困惑,因为似乎某种重定向正在进行,错误的HTTP_REFERER是我发布的页面.

我之前遇到过这个问题,其中一个命名路由解决了我的问题,但我正在创建一个简单的CMS,因此使用了一个表单的模板,并且我不可能使用命名路由,而不允许用户使用使用Blade语法这是一个坏主意.

我的路线如下(简化为"Hello world"):

Route::post('/signup/add', function(){
    echo "Hello world"; 
});
Run Code Online (Sandbox Code Playgroud)

http://pastebin.com/EsAeyHFx < - 完整routes.php

http://pastebin.com/ByHdUFcK < - 我的表格.没有什么花哨的,只有纯文本/ radiobuttons输入.没有HTML或任何特殊的东西.

更奇怪的是,我有另一种形式(登录表单)不会导致这种行为.

我一直在关注StackOverflow上的其他几个问题,但它们似乎最终都是将POST数据发送到GET路由的错误.这不是我的情况.

如果我将路由从POST改为GET,它可以正常工作.

我也尝试将表单的操作更改为GET并使用隐藏字段_method并将其设置为post - 没有成功.

有人可以告诉我这个例外是怎么回事以及如何修复它?

补充:经过一些实验,我发现当使用第三方软件(如Chrome扩展名Postman)并向页面发送POST请求时,它可以按照预期运行.

Fiz*_*izk 9

好吧,经过一些挖掘,在jsfiddle中制作表单,使用jQuery等,我发现了问题!

我的表单在action属性中有一个尾部斜杠,据说是不允许的.

解决方案只是将我的代码更改为action="/signup/add"而不是action="/signup/add/

伙计,我觉得自己很蠢......