Ваш браузер отправляет запрос CORS.Это означает, что запрос достигает сервера, сервер отправляет ответ - как вы можете наблюдать в Wireshark, браузер проверяет заголовок Access-Control-Allow-Origin: *
ответа, не находит его и блокирует ответ.Это именно то, что говорится в вашем сообщении об ошибке: not allowed by Access-Control-Allow-Origin
.
То, что вы делаете неправильно, предполагает, что document.domain имеет какое-то значение.
Рассмотрите этот сценарий: вы хостингблоги отдельных пользователей на поддоменах, но интерфейс управления учетными записями и публикациями находится на вашем основном домене (подумайте Tumblr).Если document.domain что-то изменило для междоменных запросов, я мог бы разместить на своем блоге какой-нибудь javascript и публиковать спам (при условии, что вы прошли аутентификацию с помощью службы), и никакая защита CSRF не остановит меня.
То, к чему относится document.domain, это межкадровая связь.Например, вы можете загрузить страницу из api.com в iframe на своей верхней странице, для этой страницы iframe следует явно указать document.domain = 'api.com'
, затем вы можете установить document.domain = 'api.com'
для верхней страницы, и вуаля, вы можете передавать данныемежду вашей главной страницей и iframe вызовите функции и попросите страницу irfame сделать ajax-запросы для api.com.