Nginx配置跨域-http請求方法OPTIONS
Nginx配置跨域 http請求方法OPTIONS
看到標題有點扯,為什麼跨域與http的請求方法options有關係,因為當你跨域獲取資源時,瀏覽會出於安全的考慮會先使用OPTIONS做請求,看能否正常返回,因為使用OPTIONS返回的是206狀態碼,無論是否正常返回頁面都不會被跳轉或者重新整理
配置跨域
在server,location中新增如下程式碼,只要是OPTIONS請求時允許後續請求及正常返回狀態碼
if ( $request_method = 'OPTIONS' ) {
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,X-Data-Type,X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS,HEAD,PUT;
add_header Access-Control-Allow-Credentials true;
add_header Access-Control-Allow-Headers X-Data-Type,X-Auth-Token;
}
http OPTIONS解釋
1、獲取伺服器支援的HTTP請求方法;也是黑客經常使用的方法。支援請求方法與http協議版本及web伺服器配置有關
2、用來檢查伺服器的效能。例如:AJAX進行跨域請求時的預檢,需要向另外一個域名的資源傳送一個HTTP OPTIONS請求頭,用以判斷實際傳送的請求是否安全。
3、http返回正常狀態碼為206