如何在Javascript中使用路由
我想在javascript中使用route,但我得到一个错误如何在Javascript中使用路由,javascript,ajax,laravel,laravel-5,Javascript,Ajax,Laravel,Laravel 5,我想在javascript中使用route,但我得到一个错误route[product.like+productid]未定义。有没有办法改用route 阿贾克斯 路线 您可以使用带有字符串占位符的route helper,然后用javascript变量替换占位符 函数addFavorites(productid、userid){ 让url=“{route('product.like',['id'=>':id'])}”。替换(':id',productid); $.ajax({ 方法:“post”
route[product.like+productid]未定义。
有没有办法改用route
阿贾克斯
路线
您可以使用带有字符串占位符的route helper,然后用javascript变量替换占位符
函数addFavorites(productid、userid){
让url=“{route('product.like',['id'=>':id'])}”。替换(':id',productid);
$.ajax({
方法:“post”,
url:url,
数据:{
“用户id”:用户id,
},
}).完成(功能(响应、状态){
//
}).fail(函数(jqXHR、textStatus、errorshown){
//
});
}
我认为您只需要使用“
而不是”
:url:{{route('product.like',$productid)}},
,只要这$.ajax()
调用位于.blade.php
中的
标记内,应该可以正常工作。哦,$productid
需要是一个php变量。如果productid
是一个JS变量,这种方法将不起作用。我如何定义productid
,因为我得到了一个错误未定义的变量:productid
@timliews$productid
可以从处理此视图的控制器函数传递,因为它应该被定义为URL参数。我有这个按钮,在那里我可以获得产品id
@TimLewisHmm好的,如果你这样做,那么$productid
将不是一个PHP变量。只是不要使用路由()
helper,只需使用一个基本字符串:url:'/product/like/'+productid'
,或者使用url()
helper:url:“{{url('/product/like/')}}”+productid
。
$.ajax({
method: 'post',
url: '{{ route('product.like' productid) }}',
data: {
'user_id': userid,
'product_id': productid,
},
Route::post('product/like/{id}', ['as' => 'product.like', 'uses' => 'LikeController@likeProduct']);