0

我有一个对我的 Rails API 的 AJAX 调用,它只呈现 JSON,并且我不断收到解析器错误。我尝试了各种方法,但没有任何效果。

这是我的ajax调用

$.ajax('/api/users/show/:id', {
  type: 'GET',
  dataType: 'json',
  contentType: "application/json",
  data: {
    id: 1
  },
  success: function(response) {
    return alert("Hey");
  },
  complete: function(response, textStatus) {
    console.log(response);
    return alert("Hey: " + textStatus);
  }
});

这是我的 API 方法

class UsersController < ApplicationController
    respond_to :json

    def show
        render :json => User.find(params[:id])
    end   

end

似乎我做的一切都是正确的。我从服务器正确输出 JSON,并在 AJAX 调用中声明我将 JSON 作为预期输入。此外,AJAX 调用正确地命中服务器,因为我可以在服务器日志中看到它并输出200状态。

问题是 AJAX 调用永远不会成功,所以我无法正确访问我需要的响应变量。

4

1 回答 1

2

当您指定dataType: 'json'. 返回的数据已经是一个 javascript 对象。您不应该再次使用JSON.parse. 在将字符串传递给您的success函数之前,Jquery 会自动解析来自服务器的字符串。在您的情况下,可能是来自服务器的 JSON 字符串无效,并且 jquery 在解析它时出错并且没有调用您的success函数

于 2013-08-03T08:12:54.290 回答