Laravel ajax post 方法给出 MethodNotAllowedHttpException
Posted
技术标签:
【中文标题】Laravel ajax post 方法给出 MethodNotAllowedHttpException【英文标题】:Laravel ajax post method gives MethodNotAllowedHttpException 【发布时间】:2019-05-07 19:23:24 【问题描述】:我正在尝试向控制器函数发出 ajax POST 请求,但我不断收到此错误。我按照我在网上找到的建议添加了$.ajaxSetup
和X-CSRF-TOKEN
,但仍然没有运气。
“例外”: "Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException"
web.php
Route::get('my-controller/mypostfunction', 'MyController@mypostfunction');
MyController.php
public function mypostfunction()
return "Hello poster!";
app.js
$( document ).ready(function()
$.ajaxSetup(
headers:
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
);
// This alerts the CSRF token correctly!
alert( $('meta[name="csrf-token"]').attr('content') );
$.post( "my-controller/mypostfunction", function( data )
alert( "Data Loaded: " + data );
);
);
【问题讨论】:
【参考方案1】:在您的 web.php 文件中设置 get 方法,因此只需将 get
更改为 post
方法类型
Route::post('my-controller/mypostfunction', 'MyController@mypostfunction');
【讨论】:
【参考方案2】:在您的 web.php 中,将 get 的路由更改为 post,如下所示:
Route::get('my-controller/mypostfunction', 'MyController@mypostfunction');
// into
Route::post('my-controller/mypostfunction', 'MyController@mypostfunction');
我希望这是解决方案。
【讨论】:
以上是关于Laravel ajax post 方法给出 MethodNotAllowedHttpException的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.1 AJAX - 即使我发送 POST 请求,也不允许返回 405 GET 方法
如何通过 post 方法将数据从 ajax 传递到 laravel 5.2 控制器
在 laravel 6 中以 post 方法发送表单数据给出错误,因为该路由不支持 POST 方法。支持的方法:GET、HEAD