Я пишу основное приложение, которое будет размещено на app.ourdomain.com/store.
Я хочу получить доступ к данным на api.ourdomain.com/ourApi, используя HTTP-аутентификацию, уже встроенную в наш API.
Теперь, насколько я понимаю, в ответе требуется заголовок CORS, Access-Control-Allow-Origin: *
, чтобы разрешить эту поддержку перекрестного происхождения.
Однако это не работает в IE8/9. Я читал на SO и в других местах, что я могу просто добавить $.support.cors = true;
, и это волшебным образом начнет работать в IE8/9.
Прежде чем я углублюсь в этот проект, я надеюсь, что кто-то с практическим опытом сможет ответить на этот вопрос:
Если мы напишем наш API для обработки предполетного запроса OPTIONS, разрешив запрос из разных источников, добавим это переопределение в объект $.support
, получим ли мы тогда полный доступ ко всем HTTP-глаголам (включая PUT/DELETE), возможность аутентифицировать и включать пользовательские заголовки в IE8/9 (как мы делаем во всех современных браузерах, использующих XMLHttpRequest)?
Эта статья описывает ограничения/ограничения объекта XDomainRequest
, который IE8/9 использует для таких запросов. Меня особенно интересуют № 3 и № 5, в которых говорится:
#3: No custom headers may be added to the request
Мы используем настраиваемый заголовок для указания идентификатора клиента, отправляющего запрос.
#5: No authentication or cookies will be sent with the request
Мы используем HTTP-аутентификацию для аутентификации пользователя при первоначальном запросе, а при последующих запросах используем access_token, возвращенный во время исходного запроса.
Поскольку поддержка IE8/9 является обязательной прямо сейчас, означает ли это, что я не могу использовать Backbone для запроса данных в другой поддомен в нашей системе, не делая при этом глупых действий, например, создавая прокси-API в поддомене A для доступа к данным в поддомене B?
Ваше здоровье.