Valums文件上传器xhr返回状态0,readystate 4和responseText为空

时间:2011-03-14 15:08:19

标签: asp.net xmlhttprequest file-upload responsetext readystate

我在asp.net web应用程序中使用valums fileuploader。这样的实际上传工作正常。但错误条件检查在Chrome和FF中无法正常工作。上传器指向名为fileupload.ashx的处理程序,该处理程序检查是否已存在具有相同名称的文件。 c#代码如下所示......

if (File.Exists(Path.Combine(path, fileName)))
{
    returnJson = "{success:false, error:'Duplicate filename'}";
    context.Response.ContentType = "text/plain";
    context.Response.Write(returnJson);
    return;
}

我期望在result.error属性中出现上面的错误消息。经过一些javascript调试后,我发现这段代码适用于IE8,但不适用于Chrome和FF。传输失败时,xhr responseText包含空字符串。

来自valums fileuploader.js的javascript片段如下所示......

xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        self._onComplete(id, xhr);
    }
};

令人惊讶的是,当上传成功时,即使在Chrome和FF中也能正确返回responseText。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不太清楚为什么fileupload.ashx里面有这个代码......

context.Response.ContentType = "text/plain";

这应该是......

context.Response.ContentType = "application/json";

因为返回值是JSON类型。

希望这会有所帮助。