Политика одного и того же происхождения конфликтует с базовой аутентификацией? - PullRequest
4 голосов
/ 27 апреля 2011

После настройки веб-сервера-сервера для поддержки CORS, добавив
Header set Access-Control-Allow-Origin "*"
с conf виртуального хоста apache возникла новая проблема. Я вызываю веб-сервис, используя jquery 1.5:

$.ajax( {
    type: "GET",
    url: wsBaseUrl + "?action=xyz",
    dataType: "json",

    success: function(data){
        wsCallback(data);
    }
});

Этот работает междоменный с адаптированным сервером конфигурации. Однако если веб-сервису требуется аутентификация, как в случае с производственной системой, он снова ломается.

Для аутентификации я добавляю jquery ajax params

    username: "userx",
    password: "passx",

Работает только аутентификация (не междоменная). Но как только это объединено (аутентификация + междоменный), это закончено. jQuery вызывает callback-функцию, сообщающую мне, что запрос не разрешен. Я зарегистрировал запросы с TamperData в Firefox, и ни один запрос веб-службы не был зарегистрирован там. Однако может случиться так, что так называемая предварительная проверка не регистрируется там (но если так, почему это зависит от аутентификации?).

Я перепробовал все комбинации в моей тестовой системе, и я уверен, что это правильный вывод.
Теперь я действительно застрял. Что еще я могу сделать, чтобы отладить / обойти это?

1 Ответ

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

Согласно MDC , простые GET запросы НЕ предварительно выданы, но в случае запросов с учетными данными (например, когда вы добавляете имя пользователя, пароль в вашем примере), сервер ДОЛЖЕН ответить Access-Control-Allow-Credentials: true для того, чтобы FF 1.5+ разрешил выполнение запроса.

Обновление

См. Также Отправка учетных данных междоменными сообщениями?

...