【问题标题】:Jquery.form (3.51.0-2014.06.20) fileupload not working in IE9 (sharepoint application)Jquery.form (3.51.0-2014.06.20) 文件上传在 IE9 中不起作用(共享点应用程序)
【发布时间】: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


【解决方案1】:

可能是因为您的代码中有语法错误:

data: { "some data" }

选择(提交对象)

data: { name: "firstname"}

或数组

data: ["some data"]

【讨论】:

  • 我认为他这样做是为了节省空间,因此"some data"
  • 不,恐怕不是这样。我刚刚编辑了它以消除混乱。帖子正常,文件正在上传,只有来自服务器的响应丢失了。
猜你喜欢
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多