跨域 & 同源策略
1.同源策略是指瀏覽器爲防止XSS((cross site scripting)和CSRF(cross site request forgery)等攻擊提出的安全策略,除非協議,域名(使用ip和域名視爲不同),端口三者均一致,否則視爲非同源。
2.非同源之間相互訪問,視爲跨域訪問。同源策略禁止跨域進行瀏覽器存儲,瀏覽器DOM對象操作和腳本操作,以及AJAX請求。
3.瀏覽器允許跨域請求js,css,img,mp3等常規靜態資源。
避開同源策略,實現跨域請求
1.因爲同源策略是瀏覽器規範,服務器不遵守,在對目標服務器不做改動的情況,使用代理服務器,比如nginx,在nginx裏允許跨域請求,然後代理請求目標服務器。
location / {
# 允許跨域設置
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
}