Я пытаюсь выполнять перекрестные вызовы Ajax внутри службы angular в ионном приложении, протестированном в chrome. Я пытаюсь сделать POST
на моем API, а nginx продолжает отказываться от моих OPTIONS
.
XMLHttpRequest cannot load http://wss.dev:8080/api/checkin. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. The response had HTTP status code 405.
Я пробовал другую конфигурацию, но, похоже, ни одна из них не работает.
Мой conf следующий:
server {
listen *:8080;
server_name wss.dev www.wss.dev;
client_max_body_size 200m;
index index.html index.htm index.php;
access_log /var/log/nginx/wss.dev.access.log;
error_log /var/log/nginx/wss.dev.error.log;
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'OPTIONS, GET, POST, PUT, DELETE' ;
add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With,XMLHttpRequest';
location ~ .php$ {
root /var/www/public;
try_files $uri $uri/ /index.php /index.php$is_args$args$is_args$args;
index index.html index.htm index.php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param APPLICATION_ENV dev;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
}
location / {
root /var/www/public;
try_files $uri $uri/ index.php /index.php$is_args$args;
}
sendfile off;
}
Я пробовал как в этом примере: https://michielkalkman.com/snippets/nginx-cors-open-configuration.html
Я пробовал разные конфигурации, и я пытался изменить все, что у меня сделано в angular, но ничего не работает ...
Отсутствие ответа может быть вызвано конфигурацией, подобной этой:
if ($request_method !~ ^(GET|HEAD|POST|PUT|DELETE)$ ) {
return 444;
}
Это означает, что nginx закроет соединение без надлежащего ответа, поэтому это так сложно отладить.
Найдите в своей конфигурации код возврата 444. Если вы найдете что-то подобное, просто добавьте OPTIONS
к списку).
Вы пытаетесь публиковать сообщения из локального окна разработчика? В Chrome есть ошибка это не поддерживает localhost
для запросов CORS измените его на «mylocalbox.dev», и он должен работать.