我有一个像这样工作的 JavaScript 应用程序:
- 上传文件,接收上传的文件 ID 作为响应
这是使用 BlueImp 上传器完成的 - 使用文件 ID 在后续请求中引用文件,在这种情况下接收上传文件的预览。
这是文件上传“完成”处理程序的代码。它最初是用 Coffee Script ( http://pastebin.com/708Cf9tu ) 编写的。
var completeHandler = function(e, data) {
var url;
if (data.textStatus !== 'success') {
alert("Noe gikk galt. Debug informasjon er logget i konsollen");
console.group('Upload failure');
console.error(data.textStatus);
console.error(data.result);
console.groupEnd('Upload failure');
selectButton.removeClass('disabled');
uploadButton.removeClass('disabled loading');
uploadButton.html('Last opp');
return;
}
self.fileUploadResponse = data.result;
url = "" + config.api_root + "/" + config.api_path_tabulardatafilepreview;
return $.ajax(url, {
type: 'POST',
dataType: 'json',
async: false,
data: {
'file_handle': data.result.file_handle,
'rownum': 5
},
complete: function(req, text_status) {
if (text_status !== 'success') {
alert("Noe gikk galt. Debug informasjon er logget " + "i konsollen");
console.group('Failed to receive data file preview');
console.log(text_status);
console.log(req.responseText);
console.log(req);
console.groupEnd('Failed to receive data file preview');
selectButton.removeClass('disabled');
uploadButton.removeClass('disabled loading');
uploadButton.html('Last opp');
}
self.previewData = JSON.parse(req.responseText);
return self.setStage(2);
}
});
};
这在 FireFox 中运行良好,但在 Chrome 中,我刚开始在第二个 jQuery Ajax 请求中遇到错误。它现在返回状态“错误”,没有 responseText,并且 statusText 设置为“错误:NETWORK_ERR:XMLHttpRequest Exception 101”。尽管并非在所有情况下都会发生这种情况。上传的文件似乎与问题无关,因为10KB的csv 文件有效,120KB的xlsx 文件失败,但1.2MB的xlsx 有效。此外,这是第二个失败的 Ajax 请求,它除了向服务器发送两个小整数之外什么也不做。为什么会失败!?
这也是今天才开始发生的。我没有更改我所知道的任何内容,也没有更新 Chrome。
有没有人知道为什么 Chrome 会这样做?它与在先前 Ajax 请求的完整处理程序中启动的 Ajax 请求有什么关系吗?
感谢任何可以帮助我解决这个问题的猜测