Общеизвестная проблема, контроль источника в браузере:
Браузер не позволяет по умолчанию отправлять запросы ajax к доменам «кросс-происхождения».Перекрестное происхождение означает, что порт или хост разные.Поэтому вы не можете отправлять запросы на сайт http://siteB/, в то время как скрипт для выполнения запросов размещен на сайте A.
Простым решением было бы разместить все в одном домене и сделать URL-адрес относительным.Если это невозможно, вам нужно найти другой способ не совершать звонки из разных стран.Некоторые примеры:
- JSONP (только GET)
- CORS (работа с современным браузером очень хорошая)
- включает ifram + использование PostMessage между окнами
- прокси-скрипт
РЕДАКТИРОВАТЬ: Сначала я бы разрешил вашему API-серверу кое-что, установив следующие заголовки:
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST, GET, OPTIONS");
header("Access-Control-Allow-Headers: Authorization");
Имейте в виду, что этоне работает должным образом с Internet Explorer, поэтому вы должны использовать: XDomainRequest
.Но это не позволяет отправлять заголовки.Пожалуйста, посмотрите мой вопрос пару дней назад, если вам нужно отправить заголовки кросс-происхождения