Как получить ответ на междоменный запрос в javascript - PullRequest
5 голосов
/ 14 мая 2011

Я делаю междоменный запрос в javascript, динамически добавляя скрипт и устанавливая его атрибут src в домен, к которому мне нужно сделать запрос.Для справки: http://alvinabad.wordpress.com/2009/02/13/feb13/

Код сценария:

var script_id = null;
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', crossDomainURL);
script.setAttribute('id', 'script_id');

script_id = document.getElementById('script_id');
if (script_id) {
    document.getElementsByTagName('head')[0].removeChild(script_id);
}

Теперь мне нужно проанализировать ответ на этот запрос.Я проверил сырой ответ от скрипача.Данные есть, но их нет в домене.Это начинается так:

<script type="text/javascript">
/* <![CDATA[ */
    if (top == self || parent != top || document.location.hostname != document.domain) 
    {  
        top.location.replace("http:\/\/www.facebook.com\/?gringotts_redir");}
/* ]]> */
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"**... then the rest

Источник страницы показывает встроенный мной javascript, как мне проанализировать данные, сгенерированные из этого кода.

Ответы [ 2 ]

1 голос
/ 14 мая 2011

Обычно это делается, когда ответ сценария состоит из вызова функции, уже присутствующей на странице. Браузер не позволит вашему коду «увидеть» содержимое импортированного скрипта, однако, по соображениям безопасности. Однако браузер будет запускать сценарий, если он является допустимым кодом JavaScript. В вашем случае ответом будет , а не действительный код JavaScript. Не может быть тега <script> или разметки HTML & mdash; это должен быть чистый код JavaScript, как и содержимое любого другого файла, импортированного с тегом <script>.

0 голосов
/ 14 мая 2011

То, что вы просите, известно как JSONP или "JSON with padding".

см. http://en.wikipedia.org/wiki/JSONP для получения дополнительной информации.

...