为了不容易忘掉这些东西,还是记录一下。
跨域的几种方式
1. 使用插件http-proxy-middleware
跨过浏览器的限制,通过服务器访问非同源资源,服务器做转发工作。
var express = require('express') var proxy = require('http-proxy-middleware') var app = express() app.use('/api', proxy({ target: 'http://www.example.org', >changeOrigin: true })) app.listen(3000) // http://localhost:3000/api/foo/bar -> >http://www.example.org/api/foo/bar
2. WebSocket
WebSocket协议不受同源策略的限制。
服务器端需要支持websocket协议,客户端进行下面的请求。
let wsUrl = 'ws://example.com';
let ws = new WebSocket(wsUrl);
ws.onopen = function (event) {
console.log(event);
}
可参见WebSocket 协议介绍及 WebSocket API 应用。(查阅资料时,发现这篇文章讲的全面)
3. CORS
客户端进行正常的 AJAX 请求,由服务器设置是否允许访问资源。
4. jsonp
很简单,不再赘述。
个人理解,如有错误,请指正。
网友评论