除了 JSONP,还有以下几种方法可以绕开同源策略限制:
- CORS
CORS(Cross-Origin Resource Sharing)是一种标准,允许服务器在响应中添加一个 Access-Control-Allow-Origin 头部,指定哪些域名可以跨域访问该资源。因此,在前端代码中,只需要使用 AJAX 请求即可获取到跨域数据。但要注意的是,需要后端服务器支持 CORS。
- 代理
通过设置代理服务器,在代理服务器上发送请求并获取数据,然后再将数据返回给前端页面。这样就避免了浏览器直接请求不同源的资源而引起的跨域问题。但代理服务器也需要考虑安全问题,并且会增加额外的网络延迟。
- postMessage
如果两个窗口(或 iframe)之间存在通信需求,可以使用 HTML5 中新增的 postMessage API 实现跨域通信。通过 postMessage API 发送消息时可以指定目标窗口和传递的数据,另一个窗口则监听 message 事件接收消息。
- WebSocket
WebSocket 是 HTML5 中新增的协议,它提供了双向通信功能。与 Ajax 不同的是 WebSocket 是基于 TCP 协议实现的一种长连接机制。由于 WebSocket 使用 HTTP 协议进行握手过程,在完成握手后会创建新的套接字进行数据传输,并没有同源限制。
总的来说,绕开同源策略限制的方法有很多种,但每种方法都有自己的特点和使用场景。具体选择哪种方法应该根据具体情况而定。




