跨域是指当一个Web页面的脚本(如JavaScript)试图请求另一个与自身不同源的Web页面资源时,由于浏览器的同源策略
限制,导致请求被阻的现象。
同源策略是浏览器为了安全而设置的一种策略,它要求Web页面只能访问与其自身的协议(http或https)、域名和端口都相同的资源。
跨域问题的常见解决方案:
- JSONP(JSON with Padding):利用动态创建
<script>
标签的方式,不受同源策略限制,但仅适用于GET请求,且存在安全风险。 - CORS(Cross-Origin Resource Sharing):服务器端设置响应头,允许跨域访问。常见的响应头有
Access-Control-Allow-Origin
、Access-Control-Allow-Methods
等。 - 代理服务器:在服务器端设置一个代理服务器,将跨域请求先发送到代理服务器,再由代理服务器向目标服务器发送请求,从而绕过浏览器的同源策略限制。
- WebSocket:WebSocket连接不受同源策略限制,因此可以通过WebSocket实现跨域通信。