为什么我的ajax调用失败了

时间:2016-09-08 16:42:30

标签: javascript jquery ruby-on-rails ruby ajax

我设置了一个ajax调用,它继续执行失败功能,而不是完成失败功能。它使控制台记录“不起作用”而不是“工作”。我的代码如下。 url'/'是索引方法。

var data = 
    {
        "latlng": [e.latlng.lat, e.latlng.lng]
    }

    $.ajax({
        url: '/',
        method: 'GET',
        dataType : "json",
        data: data
    }).done(function(response){
        console.log(response);
    }).fail(function(){
        console.log("didnt work");
    })

我的控制器

def index

if request.xhr?
   return "works!"
end

端 我知道它命中了request.xhr,因为我在那里放了一个binding.pry,我看到了我的数据,但它似乎没有返回“工作!”。

编辑:我根据以下评论得到了它。我现在得到了回复,但它是一个HTML响应。我返回了字符串“works”但它似乎不像我的ajax响应。

1 个答案:

答案 0 :(得分:3)

如果查看Web控制台,您可能会看到错误。您已经告诉jQuery它应该期待JSON,但是您发回的内容并不是有效的JSON,所以当jQuery尝试解析它时,它会失败。

如果您从控制器中删除dataType: "json"或返回有效的JSON,它应该可以正常工作。