В настоящее время я развертываю базовый API на своем рабочем сервере и сталкиваюсь (как мне кажется) с проблемой CORS, но происходит какое-то поведение, которое я не могу объяснить.
Я общаюсь с интерфейсом AngularJS на Laravel 5 (+ laravel-cors) задний конец.
Я начал тестирование с простого вызова jQuery AJAX (ниже), и когда я делаю запрос из моей локальной среды Vagrant (http://dev.example.local/test.html
) в http://api.example.com/v1/matches
, я получаю сообщение об ошибке Access-Control-Allow-Origin
. Странно то, что запрос действительно проходит, потому что информация хранится в базе данных через API на основе Laravel правильно.
$.ajax({
method: 'POST',
url: 'http://api.example.com/v1/players',
data: {
"username": "username",
"first_name": "First",
"last_name": "Last",
"nickname": ""
}
}).always(function(r) {
console.log(r);
});
Ошибка:
XMLHttpRequest cannot load http://api.example.com/v1/players. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://other.example.com' is therefore not allowed access.
console.log(r)
возвращает {readyState: 0, responseJSON: undefined, status: 0, statusText: "error"}
Я разработал приложение локально, используя виртуальную машину Homestead (API) и среду Vagrant (приложение), и оно работает правильно в этих средах...
Некоторые наблюдения:
- Каждый из этих запросов отображается с методом:
POST
, статусом:200 OK
, типом:xhr
в моих инструментах разработчика Chrome. - Такие инструменты, как Postman и тестер службы RESTful от PhpStorm, правильно выполняют запрос, и данные добавляются без ошибок.
Любые идеи о том, как отладить эту проблему, приветствуются... Я пытался обдумать это в течение всего дня, и я просто не знаю, что вызывает это.
Access-Control-Allow-Origin
установлено значение*
, поскольку это общедоступный API, есть ли способ проверить это? И поскольку я запускаю запросы AJAX POST через jQuery, они непросты, верно? Поэтому они должны отправить предварительный запрос. Должен ли я видеть это на вкладке «Сеть» инструментов разработки Chrome, поскольку я их не вижу. 02.09.2015Access-Control-Allow-Origin
к моему виртуальному хосту apache2, и теперь он работает правильно... 02.09.2015