我有用户输入的数据,这些数据被发布到不同的域和不同的协议。经过阅读,我发现微软的XDomainRequest
对象不允许跨源交互(不同的协议,端口,这里是#7。
我正在为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);
"看起来"像是在发送时,我找不到有关它的信息,也无法在控制台中看到它。我看了看,但没能完全理解;控制台响应: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);
}
有人能帮我一下吗?
在此处下载脚本:https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest
在链接到jquery之后,但在进行ajax调用的脚本之前,将其包含在html中。
以一种相当刺耳的方式,我使用这个脚本将请求发送到我在heroku上运行的应用程序(http->http=运行良好),然后在heroku网站上运行一个sinatra应用程序,然后将数据发送到https网站。不漂亮,但很管用。