所以我有这个代码在我的Laravel的视图之一:(没有"nonexistenturl"这样的url,我只是瞎编的)
<script type="text/javascript">
$(document).ready(function(){
$('#btnAdd').click(function(){
addToCart();
});
function addToCart(){
$.ajax({
method: "GET",
url: "nonexistenturl",
data: { msg: 'hi' },
success: function(data){
alert('success');
}
})
}
});
</script>
警报信息显示,我不明白为什么。谢谢你的帮助!
编辑0:现在我在另一个视图中尝试了相同的代码,我得到了一个错误,因为它必须是,但我不知道为什么它在另一个视图中工作。
编辑1:
由于某种原因,如果我从一个特定的视图运行我发布的javascript代码,将执行以下代码:
public function show($id)
{
$recipe = 'App'Recipe::find($id);
return view('recipes.show')->with('recipe', $recipe);
}
Laravel的路由是:
Route::get('recipe/{id}', 'RecipesController@show');
就好像ajax请求使用了另一个url,来自当前视图的url…
编辑2
我现在觉得自己好蠢。正如charlietfl建议的那样,它正在使用url"recipe/nonexistent"。所以我要做的就是使用:url: "{{url('route')}}"谢谢大家的帮助
这可能意味着Laravel正在返回某种类型的网页,即使上面没有数据,它返回的东西也会被认为是成功的。调试这个的一个好方法是警告数据,如果它返回一个对象,那么警告data. responsetext。
alert(data.responseText);
这也将有助于导航任何虚假的url,你正在看看Laravel返回他们。编辑
尝试指定json作为返回类型,我相信它默认为文本。
$.ajax({
method: "GET",
url: "nonexistenturl",
dataType: 'json',
data: { msg: 'hi' },
success: function(data){
alert('success');
}
})