ie9中从http服务器到https服务器的跨dromain发布数据

问题描述 投票:3回答:1

我输入了要输入到不同域和不同协议的数据。阅读后,我发现Microsoft的XDomainRequest对象不允许跨域交互(不同的协议,端口,#7 here

我正在为FF,Safari和Chrome(有效)进行标准的CORS AJAX调用,并且我一直在尝试对IE9使用XDomainRequest对象。

if ($.browser.msie && window.XDomainRequest) {
  var xdr = new XDomainRequest();
  xdr.open("post", "https://_url_here");
  xdr.send( post_data );
}else { $.ajax(params); }

当我打开原始站点的https版本时,它成功地将数据发送到了接收URL,但是无法解析任何数据。 xdr.send(post_data);看起来像是在发送时一样,我无法在其上找到信息或在控制台中看到它。我看了看this,但听不清。控制台已回复:Unable to get value of the property 'postMessage': object is null or undefined

if ($.browser.msie && window.XDomainRequest) {
  var domain = $("iframe").contentWindow;
  domain.postMessage( post_data );
  }else {
    $.ajax(params);
  }

有人可以为此提供一些帮助吗?

ajax internet-explorer-9 postmessage xdomainrequest
1个回答
1
投票

在此处下载脚本:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

在链接到jquery之后但在进行ajax调用的脚本之前,将其包含在html中。

[以一种相当不灵活的方式,我使用此脚本将请求发送到在heroku(http-> http =正常运行)上运行的应用程序,然后在heroku站点上运行了sinatra应用程序,然后将数据发送至https网站。不漂亮,但是可以用。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.