这个 javascript 代码
$(document).ready(function () {
var uploader = new qq.FileUploader({
element: document.getElementById('file-uploader'),
action: 'api/GradeCheckIn',
debug: true,
onComplete: function (id, fileName, responseJSON) {
alert(responseJSON[0].ValidationErrors[0].ErrorMessage);
}
});
});
像 Firefox 中的魅力一样工作。文件被发送到服务器,结果返回给客户端。返回的数据是json btw。
但在 Internet Explorer 中,我收到消息Do you want to open or save GradeCheckIn (2 bytes) from localhost。就像我正在尝试下载文件一样。
我该如何解决这个问题?我希望资源管理器中的行为与 Firefox 中的行为相同。
评论后编辑:
请求标头中的内容类型在 IE 和 FireFox 之间有所不同:
IE: multipart/form-data; boundary=---------------------------7dc2ec8205b2
Firefox: application/json; charset=utf-8
即使我在发出请求的代码中明确设置了内容类型:
xhr.open("POST", queryString, true);
xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhr.setRequestHeader("X-File-Name", encodeURIComponent(name));
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
xhr.send(file);
我仍然无法解决这个问题。所有想法都受到高度赞赏。如果我应该提供更多信息,请告诉我。