та же политика происхождения во внешнем файле js - PullRequest
4 голосов
/ 06 сентября 2010

если на сайте http://www.mysite.com есть внешний js-файл, добавленный как

<script src="http://www.yoursite.com/new.js"></script> 

в файле http://www.yoursite.com/new.js js, есть вызов ajax скрипта в http://www.yoursite.com/new.js

в таком случае возникнет ли проблема безопасности политики того же источника, что и при вызове сценария на сайте с другого сайта?

Ответы [ 2 ]

6 голосов
/ 06 сентября 2010

Будет проблема.new.js выполняется в области действия mysite.com, а не yoursite.com.

РЕДАКТИРОВАТЬ: более подробное объяснение будет следующим: когда mysite.com открывает тег, этот сценарий выполняется в области текущегостр.Источник скрипта не имеет значения: он может быть встроенным, локальным или удаленным, он все еще считается частью mysite.

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

В качестве расширенной опции для связи между источниками посмотрите jsonp .Это потребует, чтобы yoursite.com предоставил специальную обработку, но если у вас есть контроль над обоими сайтами, то это не должно быть проблемой.

0 голосов
/ 07 сентября 2010

JSONP - это именно то, что вы ищете: http://en.wikipedia.org/wiki/JSON

Обзор на 5000 м состоит в том, что JSONP использует тот же механизм для запроса внешних скриптов, что и вы, использованный выше. Разница в том, что ваш сервер распознает это и упакует ответ JSON в качестве аргумента метода обратного вызова. Когда ваш сайт получает этот «скрипт», он выполняет его, возвращая данные непосредственно в ваш метод обратного вызова.

Если вы можете использовать такую ​​среду, как jQuery, большая часть клиентской части будет прозрачно обработана для вас. Проверьте это здесь: http://api.jquery.com/jQuery.getJSON/

...