您是否有人知道如何在IE 8,9中将多部分表格跨域发布到Amazon S3(例如)?
我们使用了jQuery forms-plugin。也许它不支持XDomainRequest对象? jQuery是否构成了错误的方法?
我们已经配置了Amazon S3存储桶以允许origin *用于发布,获取并因此在所有其他浏览器中工作甚至是IE 10.
它开始发布。我可以告诉它,它显示针对亚马逊网址的发布状态消息,该消息显示在浏览器的左侧。但随后它会触发错误返回功能(在ajax选项中指定),状态为“aborted”。没有其他的。所以似乎请求被中止了。该文件永远不会到达亚马逊,如果错误来自亚马逊,我会猜测它会更加详细。
我也试过从https发帖(因为有人在某处建议,因为亚马逊上传网址使用https)。没有区别。
有什么想法吗?
/约翰
答案 0 :(得分:0)
您的怀疑是正确的 - 您的插件不支持XDomainRequest,因为它基于jQuery。
jQuery doesn't include support for XDR:
XDomainRequest问题摘要:
- jQuery不包含XDomainRequest支持,因为XDR存在许多严重的限制。
IE 10版supports CORS,但以前的版本不使用XDR:
MSHTML / Trident 6.0(Internet Explorer 10)具有本机支持。 MSHTML / Trident 4.0& 5.0(Internet Explorer 8& 9)通过XDomainRequest对象提供部分支持。
您可以尝试将this jQuery plugin添加到您的网站,看看它是否可以解决您的问题。来自自述文件:
jQuery插件,它透明地添加了跨源资源共享 (CORS)浏览器,包括IE8 +
编辑:如果这不起作用,您可以添加尝试相同修改的following snippet:
if ('XDomainRequest' in window && window.XDomainRequest !== null) {
// override default jQuery transport
jQuery.ajaxSettings.xhr = function() {
try { return new XDomainRequest(); }
catch(e) { }
};
// also, override the support check
jQuery.support.cors = true;
}