跨域解决方案

如题所述

解决跨域的方法有:JSONP方式解决跨域、CORS方式解决跨域、搭建Node代理服务器解决跨域、Nginx反向代理解决跨域、postMessage方式解决跨域、Websocket方式解决跨域等。

1、JSONP方式解决跨域

jsonp的原理就是利用了script标签不受浏览器同源策略的限制,然后和后端一起配合来解决跨域问题的。

2、CORS方式解决跨域

cors是跨域资源共享,是一种基于HTTP头的机制,该机制通过允许服务器标示除了它自己以外的其他origin(域,协议和端口),使得浏览器允许这些origin访问加载自己的资源。服务端设置了Access-Control-Allow-Origin就开启了CORS,所以这种方式只要后端实现了CORS,就解决跨域问题,前端不需要配置。

3、搭建Node代理服务器解决跨域

因为同源策略是浏览器限制的,所以服务端请求服务器是不受浏览器同源策略的限制的,因此可以搭建一个node服务器来代理访问服务器。

4、Nginx反向代理解决跨域

nginx通过反向代理解决跨域也是利用了服务器请求服务器不受浏览器同源策略的限制实现的。客户端请求nginx服务器,在nginx.conf配置文件中配置server监听客户端的请求,然后把location匹配的路径代理到真实的服务器,服务器处理请求后返回数据,nginx再把数据给客户端返回。

5、postMessage方式解决跨域

window.postMessage()方法可以安全地实现跨源通信,此方法一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。

6、Websocket方式解决跨域

使用Websocket也可以解决跨域问题,因为WebSocket本身不存在跨域问题,所以我们可以利用webSocket来进行非同源之间的通信,WebSocket规范定义了一个在Web浏览器和服务器之间建立“套接字”连接的API。简单来说:客户端和服务器之间存在持久连接,双方可以随时开始发送数据。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜