2011-06-02 89 views
1

背景:jquery 1.5.2,ruby on rails。jQuery ajaxSubmit调用总是返回一个0响应代码,response.statusText ='n/a'

主要问题似乎是我得到0响应代码,无论Web服务器告诉我它返回什么。

我有一个应用程序在模型验证失败时返回422,但由于某种原因每次都会调用成功函数。

 $("#form").ajaxSubmit({ 
     dataType: 'json', 
     success: function(data, status, response) { 
     // stuff 
     }, 
     error: function(data) { 
     // stuff 
     } 
    }); 

当我CONSOLE.LOG的一切,这是我所看到的:

POST http://site/favicons 422 (Unprocessable Entity) 
data: Object 
    favicon: "Image must be 16x16 pixels" 
    __proto__: Object 

status: success 

response:Object 
abort: function (status) { 
aborted: 0 
getAllResponseHeaders: function() {} 
getResponseHeader: function (header){ 
responseText: "{"favicon":"Image must be 16x16 pixels"}" 
responseXML: null 
setRequestHeader: function() {} 
status: 0 
statusText: "n/a" 
__proto__: Object 
+0

你可以尝试返回500或404,看看jQuery做了什么? – 2011-06-03 00:07:25

+0

你使用的是什么版本的jquery? – user406905 2011-06-03 00:30:01

+0

无论我返回状态码,根据记录的jQuery对象状态值为0,statusText为n/a。我准备好说这不是一个jQuery问题... – oreoshake 2011-06-03 00:41:04

回答

1

这个问题是因为我是做一个文件上传,它总是返回0和N/A。

+0

它不让我接受我自己的答案,但那是问题。我没有意识到jquery插件创建了一个隐藏的iframe。 http://jquery.malsup.com/form/#file-upload – oreoshake 2011-06-03 01:16:16

+0

那么你是如何解决这个问题的呢?我有一个非常类似的问题.... – BaronVonKaneHoffen 2012-02-01 11:02:42

+0

我在Rails上使用ruby,所以我创建了一个.js.erb文件,它基本上返回要执行的原始JS。 – oreoshake 2012-02-01 18:12:23