在IE6,7,8和8中发送跨域数据9

时间:2011-06-22 00:32:15

标签: ajax internet-explorer cross-domain

我刚刚发现(困难的方法)你无法对另一个域进行ajax调用。

我读过iFrames(仅适用于IE6)和跨域xml请求(仅适用于ie8以后)

还有其他方法吗? 我基本上只需要发送数据到另一台服务器,而不是接收它。

4 个答案:

答案 0 :(得分:2)

听起来你需要使用服务器端代理脚本。即对(例如)PHP脚本的AJAX请求,该脚本将为您发出HTTP / cURL请求。

答案 1 :(得分:0)

JSONP可能就是您所需要的。那里有很多例子。 这是一个很好的: http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

答案 2 :(得分:0)

我应该澄清一下:我不想使用(大)库,也不能使用代理脚本。

基本上我认为GET对我想做的事情来说“足够好”(追踪印象)

因此,当脚本被触发时,它会创建一个iframe,隐藏它并将源url设置为我的脚本+正确的GET参数。不需要任何表格。

答案 3 :(得分:0)

我将<iframe><form>的能力结合起来甚至发送到另一个域。 主文件:

<iframe id=ifr src=form.html style="display: none;"></iframe>
<input id=send-me><input type=button onclick="senddata();" value=Send>
<script>
function senddata()
{
    var ifr = document.getElementById('ifr'),
        f = ifr.contentWindow.document.forms[0];
    f.elements.data.value = document.getElementById('send-me').value;
    f.submit();
}
</script>

form.html:

<form action="http://another.doma.in/" method=post>
    <input type=hidden name=data>
</form>

这将向另一个域发出POST HTTP请求,并向其发送<input id=send-me>

的内容

请注意,这只是基本提案,如果您想要多次发送数据而无需刷新,则需要进行调整。