Почему междоменный AJAX запрещен *, если * вы не собираетесь оценивать ответ как скрипт? - PullRequest
1 голос
/ 17 апреля 2011

Допустим, я хочу использовать AJAX для получения файла json из другого ненадежного домена. Затем я анализирую ответ как объект JavaScript без какой-либо оценки сценария. (Cookie не отправляется с моим запросом.)

Я не понимаю, почему браузер мешает мне сделать это.

Я понимаю, что если бы я оценил ответ как сценарий, то это было бы проблемой безопасности.

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

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

Спасибо.

(при условии, что сервер не поддерживает CORS)

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

... у вас нет намерения оценивать ответ как скрипт?

Во-первых, безопасность браузера не может определить, что намеревается сделать .

Во-вторых, одни и те же ограничения на источник / происхождение предназначены для предотвращения и других вещей, например: увидеть http://blogs.msdn.com/b/ieinternals/archive/2009/08/28/explaining-same-origin-policy-part-1-deny-read.aspx

1 голос
/ 17 апреля 2011

Возможен междоменный AJAX, но удаленный сервер должен поддерживать CORS , и могут быть определенные ограничения заголовка.

JSONP не требуется для большинства приложений.Если удаленный сервер не поддерживает CORS, то вы застряли с мусором того же происхождения, и вам придется использовать JSONP.

Примечание:

Старые браузеры не поддерживают CORS,Возможно, вы захотите использовать jQuery или подобный фреймворк (у меня были проблемы с Mootools и междоменным AJAX, потому что я не мог понять, как удалить некоторые заголовки по умолчанию. JQuery работал из коробки для меня на моем наборе-до.

...