同源策略
首先,同源策略是浏览器的安全策略,只有浏览器存在跨域一说。如果是native和后端进行网络交互是没有跨域的。
同源策略要求在网页发起ajax请求时,当前浏览器窗口的url和访问服务器地址必须是三个一致:协议/ip(域名)/端口。
img的src,js的script标签的src地址,link的href地址都不会有跨域限制。
解决跨域问题
所有的跨域都需要server端配合
常见跨域方法:
1 jsonp:通过script的src请求和服务端交互,服务端接收请求,返回相应的src内容,jsonp只能get请求。
2 document.domain + iframe跨域
3 使用代理 nginx或者node
4 cors:服务器端在Access-Control-Allow-Origin
中设置前端所在的域
const server = http.createServer((req, res) => { res.setHeader('Access-Control-Allow-Origin', 'http://127.0.0.1:3000') // 设置请求源 res.setHeader('Access-Control-Allow-Methods', 'get') // 设置请求方法 res.end('data from cors') })
5 使用websocket请求