Jul*_*eto 20 php ajax jquery laravel laravel-5
这是我在laravel 5中的测试ajax(参见下文)
$("#try").click(function(){
var url = $(this).attr("data-link");
$.ajax({
url: "test",
type:"POST",
data: { testdata : 'testdatacontent' },
success:function(data){
alert(data);
},error:function(){
alert("error!!!!");
}
}); //end of ajax
});
Run Code Online (Sandbox Code Playgroud)
和触发链接
<a href="#" id="try" data-link="{{ url('/test') }}">Try</a>
Run Code Online (Sandbox Code Playgroud)
和我的路线
Route::post('test', function()
{
return 'Success! ajax in laravel 5';
});
Run Code Online (Sandbox Code Playgroud)
但是当我在谷歌浏览器中运行控制台并且它没有返回预期的响应"返回'成功!在laravel 5中的ajax'时,它给了我错误;"
POST http://juliver.laravel.com/test 500(内部服务器错误)
什么错误/我的代码有问题?什么我失踪了?
Ben*_*Ben 48
虽然这个问题存在了一段时间,但没有给出接受的答案,我想指出你的解决方案.因为您使用ajax发送,并且可能仍然使用CSRF中间件,所以您需要为您的请求提供额外的标头.
为每个页面(或主布局)添加元标记: <meta name="csrf-token" content="{{ csrf_token() }}">
并添加到您的javascript文件(或页面中的部分):
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅https://laravel.com/docs/master/csrf#csrf-x-csrf-token.
Met*_*ani 12
laravel ajax内部服务器错误的90%是由于缺少CSRF令牌.其他原因可以包括:
您可以在此处详细了解详情:https://abbasharoon.me/how-to-fix-laravel-ajax-500-internal-server-error/
我想这已经解决了,但是这里最好的办法就是用你的表单发送令牌
{!! csrf_field() !!}
Run Code Online (Sandbox Code Playgroud)
然后在你的ajax
$("#try").click(function(){
var url = $(this).attr("data-link");
$.ajax({
url: "test",
type:"POST",
data: { '_token': token, 'someOtherData': someOtherData },
success:function(data){
alert(data);
},error:function(){
alert("error!!!!");
}
}); //end of ajax
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
87077 次 |
最近记录: |