Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法
Posted
技术标签:
【中文标题】Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法【英文标题】:Laravel 5.1 AJAX - Returning 405 GET Method Not Allowed even when I am sending a POST request 【发布时间】:2016-02-21 03:37:14 【问题描述】:当我通过 AJAX 发送 POST 请求时,我的 Laravel POST 路由返回 405 GET Method not allowed 。但是问题是它在localhost
中有效,但在Heroku production server
中无效。我的 AJAX POST 请求作为 GET 请求发送到路由。下面我附上了截图和我的 AJAX 代码。
$.ajax(
url: url,
type: 'POST',
data: data,
contentType: 'application/json',
headers:
'X-CSRF-TOKEN': token
)
我的路由配置为:
Route::post('/adminpanel/projects/delete/', 'AdminPanelController@deleteData');
【问题讨论】:
尝试删除/adminpanel/projects/delete
<----- last slash
我不确定,但这对我有用
该死的人.. 非常感谢.. 它的工作.. 知道它为什么工作吗?请发表您的评论作为答案,我会投票赞成...
我不知道它在服务器中创建问题的原因,但仅在两天前解决了它。我为此搜索了很多,但找不到解决方案,最后自己解决了
嗯..我认为它的 Heroku 问题是因为在 localhost 中它的工作没有任何问题..
可能是,但我无法回答背后的原因
【参考方案1】:
更新您的操作 url
来自
/adminpanel/projects/delete/
进入
/adminpanel/projects/delete
//^^ Removed that slash
删除那个斜线,它会为你工作。
【讨论】:
有人能解释一下吗?【参考方案2】:如果你在 Laravel 中使用资源,那么通过命令检查路由列表:
php artisan route:list
看,如果您尝试发送的 POST 请求在路由中是否允许。 405错误一般是因为我们忘记在路由中提及请求。
【讨论】:
【参考方案3】:对我来说,在我将路线从本地化路线组中取出后,它就起作用了。我正在使用laravel-localization。
【讨论】:
以上是关于Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5.1 中通过 AJAX 将用户输入数据从视图传递到控制器
如何在 Laravel 5.1 中强制 FormRequest 返回 json?
在 Ajax 调用中传递完整 URL 作为参数 - Laravel 5.1 路由
在 Laravel 5.1 中使用 VueJs 和 AJAX 提交表单