Php 405 laravel 5.6中的错误
我使用laravel 5.6通过ajax向服务器发送表单数据 在将数据发送到服务器时,我已经指定了ajax发送POST的方法和web.php发送POST的路由方法,问题是,ajax使用GET方法而不是POST发送表单数据。我应该换什么 ajax代码Php 405 laravel 5.6中的错误,php,laravel,routing,Php,Laravel,Routing,我使用laravel 5.6通过ajax向服务器发送表单数据 在将数据发送到服务器时,我已经指定了ajax发送POST的方法和web.php发送POST的路由方法,问题是,ajax使用GET方法而不是POST发送表单数据。我应该换什么 ajax代码 var form = $('#personPersonalInfoForm')[0]; var formData = new FormData(form); $.ajax({ url:"/addNewPerson", Type: "
var form = $('#personPersonalInfoForm')[0];
var formData = new FormData(form);
$.ajax({
url:"/addNewPerson",
Type: "POST",
data: formData,
contentType: false,
processData: false,
success: function(data)
{
alert(data);
}
});
web.php代码
Route::post('/addNewPerson', 'adminController@addNewPerson');
web.php
Route::post('/addNewPerson', 'adminController@addNewPerson')->name(admin.add_new_person);
在adminController中:
public function addNewPerson(Request $request){
// you can check request parameters
//return response()->json($request->all());
// add new person code here ...
return response()->json(array('status'=>'success','message'=>'person added'));
}
您的ajax代码应该是:
$.ajax({
url:"/addNewPerson",
type: "POST",
data:$('#personPersonalInfoForm').serialize(),
dataType:'json',
contentType: 'application/json',
success: function(data)
{
alert(data);
},
error:function(){
alert('ERROR');
}
});
下面是一个使用FormData的工作代码示例。 使用“方法”配置而不是“类型”
不要忘记在表单中添加CSRF令牌
<form method="POST" action="/addNewPerson" id="ajaxForm">
@csrf
...
</form>
在表单和ajax中添加url?url仅在表单中存在。这样做更好,因为如果使用正确的事件侦听器,您可以对多个表单使用相同的JS。如果您谈论的是CSRF令牌,那么不,您可以在表单或AjaxSetup中添加它。
<form method="POST" action="/addNewPerson" id="ajaxForm">
@csrf
...
</form>
<meta name="csrf-token" content="{{ csrf_token() }}">
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});