如何在 ajax URL 路由中添加变量
Posted
技术标签:
【中文标题】如何在 ajax URL 路由中添加变量【英文标题】:How to add a variable in ajax URL route 【发布时间】:2019-07-26 10:18:57 【问题描述】:我正在尝试将一个变量连接到我在 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】:$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.');
);
);
【讨论】:
错误:GET https://localhost/admin/recipients12?newsID=12 404 (Not Found)
它应该是'localhost/admin/recipients/12?newsID=12'。缺少/
是的,你必须在你的 js 中添加这个,所以你必须使用'url("admin/recipients")' + '/' + news
而不是'url("admin/recipients/")' + news
。我猜是因为 url Blade 功能正在删除最后一个 /
。以上是关于如何在 ajax URL 路由中添加变量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AJAX 调用中获取 JavaScript 变量作为 Laravel 路由名称
如何在 laravel js 文件中添加 ajax URL?