Я пробую, действительно делают перекрестные вызовы домена Ajax в угловом сервисе в ионном приложении, протестированном в хроме. Я пытаюсь сделать a 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
Я попробовал различные конфигурации, и я пытался измениться, мои alls сделаны в угловом, но ничто не работает...
Вы пытаетесь отправить сообщение из локального окна разработчика? В Chrome есть ошибка , которая не поддерживает localhost
для запросов CORS, измените ее на что-то вроде «mylocalbox.dev», и она должна работать.
Отсутствие ответа может быть вызвано конфигурацией, подобной этой:
if ($request_method !~ ^(GET|HEAD|POST|PUT|DELETE)$ ) {
return 444;
}
Это означает, что nginx закроет соединение без надлежащего ответа, поэтому это так сложно отладить.
Найдите в своей конфигурации код возврата 444. Если вы найдете что-то подобное, просто добавьте OPTIONS
в список).