Отправка междоменных данных в IE6, 7, 8 и 9 - PullRequest
2 голосов
/ 22 июня 2011

Я только что обнаружил (сложным способом), что нельзя делать вызовы ajax в другой домен.

Я читал об iFrames (который работает только в IE6) и междоменном xml-запросе (который работает только с ie8 и далее)

Так есть ли другой способ? Мне просто нужно отправить данные на другой сервер, а не получать их.

Ответы [ 4 ]

2 голосов
/ 22 июня 2011

звучит так, как если бы вам нужно было использовать прокси-скрипт на стороне сервера.например, AJAX-запрос к (например) PHP-скрипту, который сделает для вас HTTP / cURL-запрос.

0 голосов
/ 22 июня 2011

Я бы сочетал <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>

Это сделает HTTP-запрос POST к другому домену и отправит туда содержимое <input id=send-me>.

Обратите внимание, что это всего лишь базовое предложение, и оно нуждается в корректировке, если вы хотите, например, отправлять данные несколько раз без обновления.

0 голосов
/ 22 июня 2011

Я должен был уточнить: я не хотел использовать (большую) библиотеку и не могу использовать прокси-скрипт.

По сути, я решил, что GET будет "достаточно хорошим" для того, что япытался сделать (отслеживать показы)

Так что, когда скрипт запускается, он создает iframe, скрывает его и устанавливает исходный URL для моего скрипта + правильные параметры GET.Никаких форм не требуется.

0 голосов
/ 22 июня 2011

JSONP может быть то, что вам нужно.Есть много примеров там.Вот хороший: http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

...