JQuery Ajax返回成功与不存在的url参数


JQuery Ajax returning success with nonexistent url parameter

所以我有这个代码在我的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');
  }
})