2014-06-11 30 views
6

Mam CORS działa dobrze z Nginx. Interfejsy API są zaprojektowane tak, aby wysyłać kod stanu innego niż 200 - przykład 401, 404 itd. - w przypadku złych danych wejściowych. Problem polega na tym, że Chrome anuluje/anuluje żądanie, jeśli otrzyma kod stanu inny niż 200. Z tego powodu nie mogę wyświetlić dokładnego błędu na kliencie sieci Web.CORS i non 200 kod stanu

Co jest przyczyną błędów kodu statusu CORS bez błędów?

Odpowiedz

0

Musisz użyć modułu more_set_headers.

z -s można scpecify więcej kod stanu

more_set_headers -s '404,400,403' 'Access-Control-Allow-Origin: http://domain.com';

Jednak jeśli nie zainstalowano tego modułu w nginx trzeba go skompilować. go skompilować:

wget http://nginx.org/download/nginx-1.7.8.tar.gz 
git clone https://github.com/openresty/headers-more-nginx-module.git 
tar -xzvf nginx-1.7.8.tar.gz 
cd nginx-1.7.8 
./configure --prefix=/opt/nginx --add-module=/path/to/headers-more-nginx-module 
make 
make install 
7

Domyślnie Nginx tylko dodaje nagłówków żądań uzna za udany. Możesz dodać nagłówek bez zwracania uwagi na kod odpowiedzi, dodając parametr always do dyrektywy add_header, np.

add_header 'Access-Control-Allow-Origin' '*' always;