Запрос ajax между субдоменами отклонен, даже если document.domain задан правильно

В моем приложении у меня есть веб-сайт в одном субдомене (dev.u413.com), и я использую jQuery для выполнения запроса ajax к JSON api в другом субдомене. (api.u413.com). Когда я проверяю запросы в инструментах разработчика Chrome и 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 через поддомены?

16
задан halfer 12 August 2018 в 12:50
поделиться