2010-09-06 4 views
3

если на сайте http://www.mysite.com есть добавлен внешний JS файл, какже политика происхождения во внешних JS файл

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

в пределах http://www.yoursite.com/new.js расслоения плотного файла, есть Аякс вызов сценария в http://www.yoursite.com/new.js

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

ответ

4

Будет проблема. new.js пробегает mysite.com, а не yoursite.com.

EDIT: более подробное объяснение было бы: когда mysite.com открывает тег, этот скрипт запускается в области текущей страницы. Источник сценария не имеет значения: он может быть встроенным, локальным источником или удаленным исходным кодом, он по-прежнему считается частью mysite.

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

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

+0

вы мольбы объяснить ... – Anish

+0

добавил лучшее объяснение я могу предоставить .. –

+0

спасибо за объяснение братан – Anish

0

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

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

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

+0

в blog.timothyfisher.com/?p=277 есть предложение -> «Ограничение между доменами означает, что вы можете общаться только от браузера до домена, из которого был отправлен JavaScript». поэтому у меня возникло сомнение в том, может ли скрипт на внешнем javascript-файле иметь доступ к сайту, с которого работает js-файл, даже если он работает на другом веб-сайте. – Anish

+0

@ anish-m. Я не уверен, что понимаю, что вы сказали, но могу вас уверить (так как я делал это много раз), что с JSONP вы можете эффективно передавать и получать данные (включая произвольные объекты и т. Д.) В/из сторонний сервер.Это (очень) эффективно обходит политику одного и того же происхождения, которая ограничена XMLHttpRequest (http://www.w3.org/TR/XMLHttpRequest/). – mkoistinen

Смежные вопросы