我正在使用Hayageek上传插件上传文件,该插件使用ajaxForm插件。当我想处理来自IE7的上传错误时,我的问题开始了。它在Firefox,Chrome和IE10中运行良好,但在IE7中,我总是在响应的xhr对象中获得状态0,无论服务器是否返回错误。
这是我的控制器代码:
Response.StatusCode = 400; //No matter which code I return, I always get 0
return Json(new {ErrorID = 400, Level = 1, Message = "Error message"}, JsonRequestBehavior.AllowGet);
这就是我使用IE7在xhr对象中获得的内容:
{aborted: 0, responseText: "<DIV class=...", responseXML: Object {...}, status: 0, statusText: "n/a"}
请注意,在responseText
中,我获得了整个视图,而不是“错误消息”。仅当我指定Response.StatusCode时才会发生这种情况。如果我对该行Response.StatusCode = 400;
发表评论,我会在responseText
中收到正确的消息,但我仍然会status : 0
。
我尝试使用dataType: 'json'
,但后来我得到status : parseerror
,可能是因为它试图解析responseText,这是HTML中的整个视图而不是我发送的错误消息从控制器回来。
有没有办法在IE7中收到正确的状态代码和消息作为回复,还是应该放弃?