由Windows Azure网站阻止的AJAX上传

时间:2014-03-10 15:35:30

标签: javascript ajax asp.net-mvc-4 azure azure-web-sites

我正在研究ASP.NET MVC4解决方案,通过拖放到浏览器上传PDF。我的解决方案工作正常,直到我升级我的Azure网站(它是一个“标准”Azure网站而不是Web角色)。 Javascript代码:

function uploadFile(file, documentId) {

uploadUrl = '/Reports/UploadPdf';
var xhr = new XMLHttpRequest();
xhr.open("post", uploadUrl, true);
// Set appropriate headers
xhr.setRequestHeader("Content-Type", "multipart/form-data");
xhr.setRequestHeader("X-File-Name", file.name);
xhr.setRequestHeader("X-File-Size", file.size);
xhr.setRequestHeader("X-File-Type", file.type);
xhr.onreadystatechange = function () {



    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            //alert("Received:" + xhr.responseText);
            //addPdfToUi(JSON.parse(xhr.responseText));
            pdfUploaded(JSON.parse(xhr.responseText));
            //addPdfToWorkspace();
        }
        else
            alert("Error code " + xhr.status);
    }
};

if (xhr.upload) { // check if upload property exists
    xhr.upload.addEventListener('progress', updateProgress, false); 
}
initProgressBar();
xhr.send(file);

它之前无缝上传了PDF。现在它向我发送了504服务器错误。

我怀疑我的网站可能已在后台升级到不同版本的IIS。

它仍适用于我的本地计算机。

我使用过Fiddler,Chrome Tools并在服务器端打开了详细的错误记录。没有线索。这绝对是一个服务器问题,因为它适用于Chrome和IE本地,但在Azure上无法正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我删除了Javascript行:

xhr.setRequestHeader("Content-Type", "multipart/form-data"); 

它解决了这个问题。