Что-то, что я нахожу действительно сбивающими с толку, то, почему запросы Ajax ограничены тем же доменом? Каково обоснование позади этого?
Я не вижу проблемы с запросом файлов от внешних местоположений, также серверы, заставляющие запросы XMLHTTP, казаться, получить и отправить на внешние прекрасные местоположения.
Представьте себе это:
Вы заходите на мой потрясающий сайт www.halfnakedgirls.com. Вы получаете удовольствие от просмотра того, что выглядит как техническая документация по физиологии человека, но за вашей спиной несколько строк JavaScript выполняют какой-то запрос к другому домену, скажем, www.yourpaypallike.com.
Запросы типа http://www.yourpaypallike.com/account/transfer?to=badguy@evilwebsite.com&amount=984654
или http://www.mymailprovider.com/mails/export?format=csv
.
Теперь вы понимаете, почему это запрещено? =)
Это сделано в целях безопасности - если веб-сайт может выполнять вызовы AJAX в любой домен, который они хотят на стороне клиента, это представляет серьезный риск.
Однако есть способы обойти это - вы можете заставить свой AJAX вызывать PHP-скрипт в том же домене, который, в свою очередь, может вызывать скрипт из другого домена и возвращать его. Это не будет использовать браузер в качестве средства связи, но будет использовать ваш веб-сервер.
Том, это не "запрос Ajax ограничен". AJAX основан на JavaScript. По соображениям безопасности JavaScript запрещен доступ на перекрестных доменах. Если вы действительно хотите использовать междоменный Ajax, вы можете взломать его.
YourPage (Ajax) ----> YourServer ----> ExternalDomain
Вы можете вызвать страницу на своем сервере с помощью Ajax. Ваш домен будет обращаться к внешнему домену со стороны сервера, и получить результат, а затем вернуть вам как ответ Ajax. Конечно, запрос к серверу ExternalDomain будет вызываться БЕЗ отправки файлов cookie для ExternalDomain, которые находятся в памяти вашего браузера. Это потому, что запрос выполняется вашим сервером, а не вашим браузером.
Вот некоторая информация для ответа на ваш вопрос: http://en.wikipedia.org/wiki/Same_origin_policy