- nginx
location / {
# 指定允許跨域的方法,*代表所有
add_header Access-Control-Allow-Methods *;
# 預檢命令的緩存,如果不緩存每次會發送兩次請求
add_header Access-Control-Max-Age 3600;
# 帶cookie請求需要加上這個字段,並設置爲true
add_header Access-Control-Allow-Credentials true;
# 表示允許這個域跨域調用(客戶端發送請求的域名和端口)
# $http_origin動態獲取請求客戶端請求的域 不用*的原因是帶cookie的請求不支持*號
add_header Access-Control-Allow-Origin $http_origin;
# 表示請求頭的字段 動態獲取
add_header Access-Control-Allow-Headers
$http_access_control_request_headers;
# OPTIONS預檢命令,預檢命令通過時才發送請求
# 檢查請求的類型是不是預檢命令
if ($request_method = OPTIONS){
return 200;
}
}
- apache
# 加在VirtualHost或者Directory裏面,哪裏有效放哪裏
Header set Access-Control-Allow-Origin * //設置允許跨域域名
Header set Access-Control-Allow-Methods * //響應標頭指定響應訪問所述資源到時允許的一種或多種方法預檢請求
Header set Access-Control-Allow-Headers content-type,authorization //響應報頭在響應用於一個預檢請求指示哪個HTTP標頭將通過提供Access-Control-Expose-Headers使實際的請求時。
面試官:跨域的解決辦法有哪些
Linux+apache 跨域配置