Ajax-запрос кросс-субдомена отклоняется, даже если document.domain установлен правильно
В моем приложении у меня есть веб-сайт на одном поддомене (dev.u413.com), и я использую jQuery для выполнения запроса ajax к API JSON на другом поддомене (api.u413.com). Когда я проверяю запросы в инструментах Chrome dev и Firefox Firebug, кажется, что мои запросы предотвращаютсяAccess-Control-Allowed-Origin
, Я поставилdocument.domain
к суффиксу текущего домена:document.domain = 'u413.com';
.
Вот моя просьба:
$.ajax({
dataType: 'json',
data: { parseAsHtml: true, cli: 'help' },
url: 'http://api.u413.com/',
success: function (response) {
alert(response.Command);
}
});
Если я изменю запрос ajax на тот же домен, то запрос будет успешным.
$.ajax({
dataType: 'json',
crossDomain: false,
data: { parseAsHtml: true, cli: 'help' },
url: 'http://dev.u413.com/',
success: function (response) {
alert(response.Command);
}
});
Почему это происходит? Браузер не должен жаловаться на междоменные проблемы, так как я установилdocument.domain
к общему суффиксу обоих поддоменов в соответствии ста же политика происхождения.
В настоящее время у меня есть приложение, работающее с jsonp, но я чувствую, что правильные запросы ajax должны работать в соответствии с той же политикой происхождения, которую я связал выше. Я бы предпочел не использовать JSONP, если мне не нужно. Разве нельзя делать регулярные запросы AJAX через субдомены?