Nginx
允許 Nginx 上的跨源請求 (CORS) 進行 404 響應
我正在使用 Nginx 使用此問題中概述的技術來提供靜態文件以響應 CORS 請求。但是,當文件不存在時,404 響應不包含
Access-Control-Allow-Origin: *
標題,因此被瀏覽器阻止。如何發送
Access-Control-Allow-Origin: *
404 響應?
儘管很久以前有人問過這個問題,但我正在用更多模組編譯 nginx,但是使用較新版本的 nginx,我發現我不必自定義編譯 nginx,我所需要的只是添加
always
指令。http://nginx.org/en/docs/http/ngx_http_headers_module.html
Syntax: add_header name value [always];
如果指定了 always 參數(1.7.5),則無論響應程式碼如何,都將添加標頭欄位。
因此, CORS標頭的調整版本:
if ($cors = "trueget") { # Tells the browser this origin may make cross-origin requests # (Here, we echo the requesting origin, which matched the whitelist.) add_header 'Access-Control-Allow-Origin' "$http_origin" always; # Tells the browser it may show the response, when XmlHttpRequest.withCredentials=true. add_header 'Access-Control-Allow-Credentials' 'true' always; }