【发布时间】:2014-10-18 06:57:58
【问题描述】:
好的,在我开始之前让我说我确实看过 SO 和其他地方的几乎所有答案。 jq 表单上传问题和确信这个问题不同。
基本上发生的情况是文件上传正常,响应以 application/json 格式返回,并带有来自上传控制器的 ID。最初在 IE 中,响应提示下载并解决我将内容类型更改为 text/json (text/html,text/xml) 的问题。现在它不再提示下载,但是当我尝试访问响应以查找返回值时,它出现空。代码如下所示,xhr.responseText 为空。
$('#upload-file-data-form').ajaxSubmit({
xhrFields: { withCredentials: true },
url: url,
dataType: "json",
data: { DataItems : "some data" },
complete: function (xhr) {
var json = xhr.responseText;
var data = $.parseJSON(json);
onDone(data.d);
},
errors: function () {
onFail();
}
});
返回的 JSON 的 Fiddler 提取。
应用程序在线托管在 SP 中,并且上传发生在 azure 中的 Web api 端点。由于这在 chrome 和 IE11 中运行良好,我假设这是 IE9 中的 CORS 问题。我已经搞砸了 2 多天了,我会为任何能对此有所了解的人买啤酒(不是开玩笑!:))。
干杯!
【问题讨论】:
-
我相信 IE9 必须预检 CORS 请求;你读过这篇文章了吗? blogs.msdn.com/b/ie/archive/2012/02/09/…
-
是的,我看到了。在这种情况下,它可以很好地进行 POST(上传)。响应也很好,为 200。但是 ResponseText 在 jqeury 库中的某个地方丢失了,我不知道在哪里。
标签: javascript jquery json sharepoint-online