Laravel 5.2中的Ajax无法正常工作

时间:2016-06-08 09:06:46

标签: ajax laravel

我试图在我的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;
});

这是我的网络面板的图像

Screenshot of Network panel at Firefox

3 个答案:

答案 0 :(得分:1)

打开Goog​​le Chrome并跟踪网络请求可能会有所帮助。

使用Laravel和AJAX时要记住的一点是,如果您使用的是authweb中间件,则需要使用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