同源策略及跨域

同源策略

首先,同源策略是浏览器的安全策略,只有浏览器存在跨域一说。如果是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请求

原文地址:https://www.cnblogs.com/panda-programmer/p/13060592.html