1.什么是跨域?
首先我们需要了解一下什么是浏览器同源策略?
如果协议、域名和端口号三者都相同就是同源。
例如:
网址1 | 网址2 | 是否同源 | 原因 |
---|---|---|---|
http://www.baidu.com/a.js | http://www.baidu.com/b.js | 同源 | 协议、域名相同,都没有端口号 |
http://www.baidu.com/a.js | https://www.baidu.com/a.js | 不同源 | 协议不同 |
http://www.baidu.com:8080/a.js | https://www.a.com:8080/a.js | 不同源 | 域名不同 |
http://www.baidu.com:8080/a.js | https://www.baidu.com:8081/b.js | 不同源 | 端口号不同 |
那什么是跨域呢?
如果协议、域名和端口号三者有任意一个不同就是跨域。
前端请求跨域提示:
2.跨域的解决方法
//设置允许跨域的域名,*代表允许任何域名跨域
res.setHeader("Access-Control-Allow-Origin","*");
通常情况下,是不写*的,*的位置写允许跨域的地址,例如:
//设置允许跨域的域名,*代表允许任何域名跨域
res.setHeader("Access-Control-Allow-Origin","http://127.0.0.1:5500");