2017-02-05 2 views
0

Я использую страницы Github для размещения сайта angularJS и скрипта Google Apps для некоторых вещей на стороне сервера. Моя проблема в том, что если пользователь включил «Не отслеживать» -header на своих настройках устройства, мои запросы JavaScript CORS терпят неудачу. Я тестировал только с iOS, но я предполагаю, что одна и та же проблема будет присутствовать на Android или любом устройстве с опцией «Не отслеживать».Запросы CORS терпят неудачу, если пользователь имеет «Не отслеживать» включен

Что я хочу сделать, так это удалить заголовок DNT для всех запросов $http. Как я могу это сделать? Возможно ли это?

+0

Как это происходит? Предположительно, Github не поддерживает DNT и поэтому отвечает на запрос с ошибкой (менее вероятно), или наличие заголовка DNT делает предварительный просмотр запроса. – CBroe

+0

@CBroe. Запрос на скрипт Google, и он не сработает, возвращая 405 – tjespe

+0

405. Метод не разрешен. Поэтому, скорее всего, вы действительно имеете дело с предпродажным запросом здесь, что удаленный сервер настроен неправильно. – CBroe

ответ

1

Добавление заголовка DNT заставляет браузер выдавать предполетный запрос OPTIONS, а ошибка 405 (Method Not Allowed) указывает, что скрипты Google Apps не поддерживают его.

В соответствии с этими bugreports, это поведение возможно. Их рекомендация - use JSONP, а не XHR.

А поскольку заголовок DNT добавлен браузером, нет способа избежать его отправки.