使用javascript到laravel方法的ajax post中出现错误405
我试图通过btn点击创建一个post ajax请求,我得到了错误405。我搜索了一下,在我的文件头中包含了令牌部分使用javascript到laravel方法的ajax post中出现错误405,javascript,php,ajax,laravel,Javascript,Php,Ajax,Laravel,我试图通过btn点击创建一个post ajax请求,我得到了错误405。我搜索了一下,在我的文件头中包含了令牌部分 <meta name="csrf-token" content="{{ csrf_token() }}"> 在我的路线文件中我有这个 Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo'); 并且方法saveInfo存在于BebedourosController中 我还尝试在ajax
<meta name="csrf-token" content="{{ csrf_token() }}">
在我的路线文件中我有这个
Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo');
并且方法saveInfo存在于BebedourosController中
我还尝试在ajax设置中插入令牌,但什么都没有。有人知道另一个解决方案吗?看起来onclick正在调用该方法并返回301,然后返回405 bu,它在ajax请求中只输入一次调试器。尝试以下操作:
标题:
<meta name="csrf-token" content="{{ csrf_token() }}" />
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
希望有帮助。看起来您的函数丢失了,或者您在ajax函数中没有给出正确的路径。说出路线的名字
Route::post('/bebedouros/saveInfo/','BebedourosController@saveInfo')->name('saveInfo');
然后在ajax函数中调用route函数
$.ajax({
method: "POST",
type: "POST",
url:"{{ route('saveInfo') }}",
data:{
"_token": "{{ csrf_token() }}",
IdVisitaBebedouro:id,
TipoBebedouro:tipoBebedouro,
Higiene:higiene,
Fluxo:fluxo,
Comprimento:comprimento
},
processData:true,
success: function(data){
alert('informação gravada com sucesso');
}
});
可能的问题是分配的
类型
值将是application/json
,但目前正在分配POST
。POST仅对方法有效。还可以使用@arunj提到的令牌信息修改ajax调用头,我已经尝试过了,但是谢谢。为我的路线设置一个名称并将该名称传递到“url”中解决了我的问题可能是因为我没有使用表单发生这种情况?通常我使用表单提交数据,但对于本节,我需要使用ajax请求而不是表单提交数据。。你能回答这个疑问吗?我认为ajax的url
属性没有选择正确的路径,可能只是/bebebedouros/saveInfo/
。这里我们给出了正确的路径,您可以在页面源代码中查看。
$.ajax({
method: "POST",
type: "POST",
url:"{{ route('saveInfo') }}",
data:{
"_token": "{{ csrf_token() }}",
IdVisitaBebedouro:id,
TipoBebedouro:tipoBebedouro,
Higiene:higiene,
Fluxo:fluxo,
Comprimento:comprimento
},
processData:true,
success: function(data){
alert('informação gravada com sucesso');
}
});