Подтвердить что ты не робот

Почему тег HTML SCRIPT не подпадает под одну и ту же политику происхождения

Я задаю этот вопрос, потому что мы разработаем приложение, которое должно передавать данные кросс-генерации через javascript. Одним из возможных решений кажется JSONP, поскольку он использует теги SCRIPT, извлекает данные из других доменов. Тем не менее, я хотел бы избежать ситуации, когда мы реализуем наш замечательный код, исходя из предположения, что тег SCRIPT не подлежит sop и в некоторых случаях браузеры запрещают эту функцию.

Может кто-нибудь пролить свет на причину тега SCRIPT, чтобы разрешить запросы на междоменные запросы?

4b9b3361

Ответ 1

Я полагаю, этот проект под названием "Принципы политики одного и того же происхождения" объясняет (хотя и кратко), что в значительной степени у всех:

В принципе, пользовательские агенты могут обрабатывать каждый URL в качестве отдельного принципала и изолировать каждый документ от всех других URL-адресов, если только документ явно не указал, что он доверял этому URL-адресу. К сожалению, этот дизайн является громоздким для разработчиков, потому что веб-приложения часто состоят из нескольких ресурсов, действующих совместно.

В качестве приближения пользовательские агенты группируют URL-адреса вместе в защищенные домены, называемые источниками. В частности, два URL-адреса являются частью одного и того же источника (т.е. Представляют один и тот же главный), если они имеют одну и ту же схему, хост и порт.

Короче: было бы намного сложнее построить Интернет, если бы все было под SOP.

Ответ 2

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


Я читал скрипты spec regerding, и в нем ничего не говорится о том, почему. Все, что он говорит, это:

Если значение src имеет значение URI, пользовательские агенты должны игнорировать содержимое элемента и извлекать script через URI.

извлечь [и выполнить]

Ответ 3

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