Наконец, я решил опубликовать это... Я чувствую, что идиот, для многих информации, и я не нашел ответа,
ну, проблема в CORS, я пытаюсь сделать это в angularJS:
var request = $http({
method: "POST",
url: url,
data: data
});
url - это сервер с symfony, делающий JsonResponse(), ничего особенного, попробовав его с POSTMAN, все в порядке (так.. сервер в порядке?), но когда я пытаюсь использовать другой веб-интерфейс, я вижу в консоли:
XMLHttpRequest cannot load http://server/login. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:63342' is therefore not allowed access. The response had HTTP status code 405.
На самом деле в symfony у меня есть NelmioBundle с этой конфигурацией:
nelmio_cors:
defaults:
allow_credentials: true
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE','OPTIONS']
max_age: 3600
paths:
'^/':
allow_origin: ['*']
allow_headers: ['*']
allow_methods: ['POST', 'PUT', 'GET', 'DELETE','OPTIONS']
max_age: 3600
Я использую LEMP для получения дополнительной информации,
Спасибо за предварительный и извините за мой самый бад-английский!
Я вижу, что вы установили allow_credentials: true
. Вы также должны установить соответствующие HTTP-заголовки в Angular.
$http.defaults.headers.post['Access-Control-Allow-Credentials'] = 'true';
var request = $http.post(path, data, { withCredentials: true });
Для получения дополнительной информации о CORS см. Эту ссылку в учебном курсе CORS
host
в значениях по умолчанию или пути.