我想在我的laravel项目中使用ajax方法,我已经为它定义了一个路由:
Route::get('/ajax/get_discount_code','SomeController@some_method');
所以我使用jQuery的get函数:
$('#button').click(function () {
var url = '/ajax/get_discount_code';
$.get( url , function( data ) {
console.log(data);
});
});
我得到了以下错误:
获取代码 404 (未找到)
原因是,它试图得到的是代码而不是代码
为了修复此错误,我可以更改javascript url变量并将其设置为:
var url = '/myProject/public/ajax/validate_discount_code';
然后404 (未找到)错误将不再出现,而且它工作得很好,但我知道这不是修复此错误的好方法,因为我已经将'myProject/public‘硬编码到字符串中。
我的问题是,在这个示例中修复404未找到错误的最佳实践是什么?
发布于 2017-09-08 15:33:33
如果您安装了拉鲁特助手函数,您可以在Javascript中轻松地包含到路由的URL:
$('#button').click(function () {
var url = laroute.url('/ajax/get_discount_code'); // laroute.action('SomeController@some_method'); will also work
$.get( url , function( data ) {
console.log(data);
});
});
发布于 2017-09-08 15:29:06
使用laravel url()函数来制作完整的url
var url = "{{ url('/ajax/get_discount_code') }}";
发布于 2017-09-08 15:29:29
您可以在主刀片文件的头部添加一个全局变量,您可以在其中存储baseURL的值,如下所示:
<head>
...
<script type="text/javascript">
var base_url = '{!! url('/') !!}';
</script>
//the rest of ur scripts
</head>
在您的脚本中,您可以调用变量base_url
并将其与请求的url粘合,这样您就不需要担心它了,而且您还可以通过更改变量的值来更改base_url
,整个站点都会正常工作。
https://stackoverflow.com/questions/46119716
复制相似问题