Проблема, с которой вы сталкиваетесь, связана с междоменными ограничениями при использовании AJAX.Когда вы пытаетесь установить заголовок авторизации, браузер выдает так называемый запрос перед полетом, чтобы увидеть, будет ли сервер принимать запросы из этого домена.
Запрос перед полетом обычно отправляется как запрос OPTIONS,Если вызываемый сервер не возвращает заголовок Access-Control-Allow-Origin, соответствующий вашему домену, запрос AJAX блокируется.Подробнее об этом можно узнать здесь: Обмен ресурсами между источниками
" Пользовательские агенты могут определить с помощью предварительного запроса, готов ли ресурс общего происхождения к приему запросов, используя не-простой метод, из данного источника."
Я столкнулся с той же проблемой - есть несколько возможных обходных путей в зависимости от вашего сценария.Если у вас есть какой-либо способ установить вышеупомянутый заголовок на стороннем сервере (некоторые приложения / службы предлагают это), то это, вероятно, самый простой способ.
Существует также библиотека javascript под названием EasyXDM это может работать для вас, но, опять же, оно будет полезно только в том случае, если у вас есть доступ к стороннему серверу для загрузки файла конфигурации для этой библиотеки.
Другими вариантами исследования являются PostMessage и междоменное взаимодействие Iframe.,Последний - скорее взлом старой школы, первый - рекомендуемый подход для новых браузеров.Это не будет работать для IE6 / 7.
Опция, которую мы, вероятно, в конечном итоге будем использовать, - это простой прокси-вызов нашего собственного сервера с помощью запроса AJAX, а на сервере вызов стороннего сервера.Это полностью исключает междоменную проблему и имеет другие преимущества для нашего сценария.