如何在Ajax URL路由中添加变量

时间:2019-03-05 02:18:26

标签: php ajax laravel laravel-5 routes

我正在尝试将变量连接到ajax中的url链接。变量$news是处理通知ID的变量。

$(document).on("click", "#viewList", function() {

    $.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    var $news = $(this).prop("value");
    $.ajax({
        type: "get",
        url : '{{url("admin/recipients/", $news)}}', //returning an error undefined variable news
        data: {newsID : $news},
        success: function(store) {
            console.log(store);
            $('#rec').text(store);
        },
        error: function() {
          $('.alert').html('Error occured. Please try again.');
        }
    });

});

在我的web.php中,它的路由在路由组内。

Route::group(['middleware' => 'auth:admin'], function () {
    Route::prefix('admin')->group(function() {
        Route::get('/recipients/{news}', 'Admin\NewsController@recipients');
    });
});

那么我该如何做呢?顺便说一句,我的ajax位于blade.php文件中。

1 个答案:

答案 0 :(得分:3)

$ news不存在于刀片服务器上,因为它在服务器渲染页面时执行。因此,您的JavaScript尚未执行。要使其工作,请将您的js代码更改为此:

$(document).on("click", "#viewList", function() {

    $.ajaxSetup({
        headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    var news = $(this).prop("value");
    $.ajax({
        type: "get",
        url : '{{url("admin/recipients")}}' + '/' + news,
        data: {newsID : news},
        success: function(store) {
            console.log(store);
            $('#rec').text(store);
        },
        error: function() {
          $('.alert').html('Error occured. Please try again.');
        }
    });

});