Nginx на человечности 12.04 продолжают отказываться от запросов ОПЦИЙ

Я пробую, действительно делают перекрестные вызовы домена 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 сделаны в угловом, но ничто не работает...

2
задан 10 June 2015 в 18:32
2 ответа

Вы пытаетесь отправить сообщение из локального окна разработчика? В Chrome есть ошибка , которая не поддерживает localhost для запросов CORS, измените ее на что-то вроде «mylocalbox.dev», и она должна работать.

0
ответ дан 3 December 2019 в 11:37

Отсутствие ответа может быть вызвано конфигурацией, подобной этой:

if ($request_method !~ ^(GET|HEAD|POST|PUT|DELETE)$ ) {
    return 444;
}

Это означает, что nginx закроет соединение без надлежащего ответа, поэтому это так сложно отладить.

Найдите в своей конфигурации код возврата 444. Если вы найдете что-то подобное, просто добавьте OPTIONS в список).

2
ответ дан 3 December 2019 в 11:37

Теги

Похожие вопросы