Jquery 拉威尔和阿贾克斯
我想在我的laravel项目中使用ajax方法,我已经为它定义了一条路线:Jquery 拉威尔和阿贾克斯,jquery,ajax,laravel,Jquery,Ajax,Laravel,我想在我的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.
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 Not Found错误的最佳实践是什么?使用laravel url()函数使完整的url类似于
var url = "{{ url('/ajax/get_discount_code') }}";
您可以在主刀片文件的头部添加一个全局变量,用于存储baseURL的值,如:
<head>
...
<script type="text/javascript">
var base_url = '{!! url('/') !!}';
</script>
//the rest of ur scripts
</head>
...
var base_url='{!!url('/')!!}';
//其余的脚本
在您的脚本中,您可以调用变量
base\u url
,并将其与请求的url粘在一起,这样您就不必担心它,而且您还可以通过更改该变量的值来更改base\u url
,整个站点将正常工作。您需要设置一个虚拟主机来解决此问题
它给出404错误的原因是localhost没有指向Laravel安装,因此您无法引用根URL
假设您使用的是apache,则需要执行以下操作来设置vHost:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName my-project.local
DocumentRoot {localhost_dir}/myProject/public
<Directory {localhost_dir}/myProject/public>
Options Indexes FollowSymLinks
Allowoverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/zjx_error.log
CustomLog ${APACHE_LOG_DIR}/zjx_access.log combined
</VirtualHost>
服务器管理员webmaster@localhost
ServerName my-project.local
DocumentRoot{localhost_dir}/myProject/public
选项索引跟随符号链接
允许超越所有
要求所有授权
ErrorLog${APACHE_LOG_DIR}/zjx_error.LOG
CustomLog${APACHE_LOG_DIR}/zjx_access.LOG组合
您将能够将AJAX指向您想要的路线。请记住在主机文件中添加一行指向locahost的内容。如果您安装了帮助器函数,您可以在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);
});
});
您可以看到这篇文章:展示如何在路由中定义它。php该库在使用Javascript@Michel路由::get('/ajax/get\u折扣\u代码','SomeController@some_method');我在一个javascript文件中。我无法使用laravel的模板引擎您有一个外部js文件,您没有将js代码写入您的刀片文件?无法将Illumb\Routing\UrlGenerator类的对象转换为string@AliSeyfi在url()中添加“/”,检查答案