首先,我們要明白什麼是跨域:
跨域,指的是瀏覽器不能執行其他網站的腳本。它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制。
瀏覽器的同源策略:
同源是指,域名,協議,端口均相同,有任一不相同皆將造成跨域
明白了這些,我們來說說解決跨域問題的兩種方案
1,header設置允許跨域(推薦)
後端代碼設置:
// 指定允許其他域名訪問
header('Access-Control-Allow-Origin:*');
// 響應類型
header('Access-Control-Allow-Methods:GET, POST, OPTIONS');
// 響應頭設置
header('Access-Control-Allow-Credentials:false');
前端ajax內設置:
$.ajax({
type: "POST",
crossDomain: true, //允許跨域請求
...
...
...
})
2,代理
比如www.aaa.com/index.html 需要調用 www.bbb.com/index.php。可以寫接口www.aaa.com/index.php來請求 www.bbb.com/index.php,
在讓www.aaa.com/index.html直接請求www.aaa.com/index.php, 相當於自己做了代理訪問,這樣不經過瀏覽器自然不會有同源限制
3,nginx反向代理
可以自行查閱下資料
4,前端vue的webpack代理
可以自行查閱下資料