laravel中所有页面的jQuery ajax url问题

时间:2018-08-12 09:58:00

标签: jquery ajax laravel

我有以下代码来显示laravel公共文件夹内js文件中页面加载时应用程序中每个链接上新消息的数量。

$.ajaxSetup({
    headers: {
      'X-CSRF-TOKEN': $('meta[name=csrf-token]').attr('content')
    }
  });
  $.ajax({
    url: "profile/newmessages",
    type: 'GET',
    dataType: 'JSON',
    beforeSend: function(){
      $("#new_messages_number").empty().append('<i class="fa fa-spinner fa-spin"></i>');
    },
    success:function(response){
      $("#new_messages_number").empty().append(response.length);
    }
  });

它适用于带有单斜杠的链接,例如localhost:8000/foolocalhost:8000/bar。但是对于带有多个斜杠的链接,例如localhost:8000/foo/bar,我得到的错误低于

GET http://localhost:8000/foo/profile/newmessages 404 (Not Found)

我该如何解决这个问题?

编辑:这是此网址的路由

Route::group(['prefix' => 'profile', 'namespace' => 'Profile'], function () {

    Route::get('/newmessages', 'MessageController@newMessages');

});

1 个答案:

答案 0 :(得分:0)

我建议首先给您的路线起一个别名

Route::get('/newmessages', 'MessageController@newMessages')->name('new.messages');

然后在您的ajax请求中:

var url = "{{ route('new.messages') }}";

  $.ajax({
    headers: {
      'X-CSRF-TOKEN': $('meta[name=csrf-token]').attr('content')
    },
    url: url,
    type: 'GET',
    dataType: 'JSON',
    beforeSend: function(){
      $("#new_messages_number").empty().append('<i class="fa fa-spinner fa-spin"></i>');
    },
    success:function(response){
      $("#new_messages_number").empty().append(response.length);
    }
  });

如果这不起作用,请通过运行php artisan route:list命令来检查您的路由是否确实存在