javascript - 为什么我的 ajax 调用失败

标签 javascript jquery ruby-on-rails ruby ajax

我设置了一个 ajax 调用,它一直转到 fail 函数而不是 done 函数。它使控制台日志记录“不起作用”而不是“有效”。我的代码如下。 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");
    })

我的 Controller

def index

if request.xhr?
   return "works!"
end

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

编辑:我根据下面的评论让它工作。我现在收到回复,但它是一个 html 回复。我返回了字符串“works”,但它似乎没有显示为我的 ajax 响应。

最佳答案

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

如果您删除 dataType: "json" 或从 Controller 返回有效的 JSON,它应该可以工作。

关于javascript - 为什么我的 ajax 调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39396288/

相关文章:

ruby-on-rails - rails,无法在 View 中显示 postgres 数组计数结果

ruby-on-rails - Rails 无法仅在 Heroku/生产上验证 CSRF token 的真实性

javascript - 如何修复支架上的绒毛?

javascript - 无法触发 HTML5 音频的 "durationchange"

javascript - CSS 向左滚动

javascript - 使用 jQuery 在每次输入按键时搜索列表项并隐藏其他项

ruby-on-rails - 有_许多/:through rails4

javascript - AngularJS ng-repeat orderBy 订单编号不正确

javascript - ng-click 不更新 ng-repeat 中的值

php - JSON 数据后意外的非空白字符?