後端工程師寫完接口之後傳到遠端伺服器上,為了便于本地調試,我特地去伺服器上的nginx配置允許CORS。
配置過程
服務必須傳回 Access-Control-Allow-Origin : enabledhost.com 的 http response,才會允許跨域通路,我先去伺服器上找到 nginx 的配置檔案,然後直接配置以下内容:
location /
{
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
include fastcgi.conf;
}
完事之後進行接口調用,發現還是不管用,于是就進行各種搜,網上的答案五花八門,有說GET類型和POST類型的請求配置不一樣,也有說一樣的。 最後還是問了搞後端的朋友,應該寫在一個關于php支援的配置檔案裡才行,于是我更正了配置:
location ——
1.php(/|$)
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
至此,就OK了,大家在進行nginx跨域配置時需要注意以下幾點:
1、Access-Control-Allow-Origin 不要像我一樣設定 * ,這樣不安全。我隻是為了臨時使用友善,後面還會關掉此設定
2、設定時寫在php相關的location配置中
3、不要忘記這條配置 add_header Access-Control-Allow-Headers X-Requested-With; 網上搜到的答案大部分都少這一條。
- / ↩