Rails完成200 OK但$ .ajax()调用'error'回调而不是'success'

时间:2015-11-29 19:23:16

标签: javascript jquery ruby-on-rails ajax

我的控制器处理ajax请求,如下所示(简化):

def create
 ...
 @answer = Answer.new(video: video_file)
 if @answer.save
  render json: @answer.video.url
 else
  ...
 end
end

这就是我的ajax函数的定义方式:

$.ajax({
        url :  "/answers",
        type: 'POST',
        data: data,
        contentType: false,
        processData: false,
        success: function(data) {
            console.log("Success!")
        },    
        error: function(data) {
          console.log("Error!",data)
        }
      });

这是Rails服务器的响应:

Completed 200 OK in 13954ms (Views: 0.3ms | ActiveRecord: 4.6ms)

这就是服务器返回的data(使用Chrome控制台):

{readyState: 4, responseText: "http://some_url.com", status: 200, statusText: "OK"}

然而,'错误'回调被执行而不是'成功'回调。我做错了什么?

1 个答案:

答案 0 :(得分:0)

事实证明,未指定返回的JSON if key被解释为格式错误。

解析json如下解决了这个问题:

render json: {answer_video: @answer.video.url}