我试图在我的laravel 5.2项目中添加ajax几天但我无法做到。我需要任何人的帮助/链接/教程。请注意,我在平均时间内多次使用Google搜索,并按照上述过程进行了搜索,但没有发生任何事情。
这是我的一段代码: Ajax的:
$('#contact-sort').on('click', function () {
//$this = $(this);
// alert($this.data('id'));
$.ajax({
method: 'post',
url: '/abc',
data: {id: 'id'},
success: function (msg) {
alert(msg);
}
})
})
路线:
Route::post('/abc', function (Request $request) {
return $request->id;
});
这是我的网络面板的图像
答案 0 :(得分:1)
打开Google Chrome并跟踪网络请求可能会有所帮助。
使用Laravel和AJAX时要记住的一点是,如果您使用的是auth
或web
中间件,则需要使用AJAX请求传递_token。
$.ajax({
method: 'post',
url: '/abc',
data: {
id: 'id',
_token: "{{ csrf_token() }}"
},
success: function (msg) {
alert(msg);
}
});
请截图您的网络面板请求,这将有很多帮助!
答案 1 :(得分:0)
这是因为:
在Laravel:
我将.htaccess文件从公共文件夹复制到根文件夹,并将server.php文件重命名为index.php。所以我的公共文件夹是一步。 因此在服务器中找不到url:'/ abc'。我通过在斜杠之前添加两个句点(例如url:'.. / abc')使问题提高一步。问题已经解决。
答案 2 :(得分:0)
在Laravel 5.2中,所有HTTP请求都通过Web中间件,因此您需要在Ajax标头中传递CSRF令牌。
将它放在你执行ajax的js文件
上$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
,这个转到你的母版页或必要的HTML /刀片页面(把它放在头标记之间)
<meta name="csrf-token" content="{{ csrf_token() }}">
可在此处找到更多信息 https://laravel.com/docs/master/routing#csrf-protection