Nginx no Ubuntu 12.04 continuar recusando pedidos OPTIONS

2

Estou tentando fazer chamadas Ajax de domínio cruzado dentro de um serviço angular em um aplicativo iônico testado no chrome. Estou tentando fazer um POST na minha API e o nginx continua recusando meu 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.

Eu tentei configurações diferentes, mas nenhuma delas parece funcionar.

Meu conf é um seguimento:

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;
}

Eu tentei como neste exemplo: link

Eu tentei diferentes configurações e tentei mudar os meus alls são feitos em angular mas nada funciona ...

    
por Lasticoteur 09.06.2015 / 23:19

2 respostas

2

Não obter resposta pode ser causado por configuração semelhante a esta:

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

O que significa que o nginx fechará a conexão sem uma resposta adequada, por isso é tão difícil de depurar.

Pesquise na sua configuração o código de retorno 444. Se você encontrar algo como o descrito acima, basta adicionar OPTIONS à lista.

    
por 23.10.2015 / 14:17
0

Você está tentando postar a partir de uma caixa dev local? O Chrome tem um bug que não suporta localhost para solicitações de CORS, altera para algo como "mylocalbox.dev" e deve funcionar.

    
por 10.06.2015 / 22:29

Tags