代理可以解决浏览器跨域请求的问题:
- 服务器之间是不存在跨域的,可以使用 NodeJS 创建一个客户端代理,由它代替浏览器客户端直接向服务端发送请求;
- 浏览器客户端可以将发送给服务端的请求发送给客户端代理,由客户端代理转为发送,解决跨域问题;
代理图解:
示例代码
- 服务端:这里用 node 模拟方便演示
const http = require('http') const server = http.createServer((req, res) => { const arr = [] req.on('data', chunk => arr.push(chunk)) req.on('end', () => { console.log(Buffer.concat(arr).toString()) res.end('获取到了客户端的数据') }) }) server.listen(1234, () => console.log('外部服务端启动了'))
- 客户端代理:
const http = require('http') const options = { host: 'localhost', port: 1234, path: '/', method: 'POST' } const server = http.createServer((request, response) => { // 向服务端发送请求,并将响应的数据返回给客户端 const req = http.request(options, res => { const arr = [] res.on('data', chunk => arr.push(chunk)) res.on('end', () => { const ret = Buffer.concat(arr).toString() response.setHeader('content-type', 'text/html;charset=utf-8') response.end(ret) // 将数据发送给客户端 }) }) req.end('你好张三') // 将数据发送给服务端 }) server.listen(1000, () => console.log('本地服务端启动了'))
- 客户端:
打赏作者
您的打赏是我前进的动力
微信
支付宝
47.全排列Ⅱ
上一篇
评论