繁体   English   中英

Rails完成200 OK,但是$ .ajax()调用“错误”回调而不是“成功”

[英]Rails completed 200 OK but $.ajax() calling 'error' callback instead of 'success'

我的控制器处理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"}

但是,将执行“错误”回调,而不是“成功”回调。 我究竟做错了什么?

事实证明,如果未指定键,则返回的JSON被解释为格式错误。

解析json可以解决此问题:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM