原理
ajax的同源政策主要是浏览器比让你执行跨域请求,而如果我们通过自己的服务器去访问则没有限制,然后我们自己客户端防卫自己的服务器即可。
A客户端->A服务器->B服务器
A客户端代码
<button onclick="btn" id='button'>发送请求</button>
<script>
var btn = document.getElementById('button')
btn.onclick = function() {
var xhr = new XMLHttpRequest()
xhr.open('get', 'http://127.0.0.1:3001/cors')
xhr.send()
xhr.onload = function() {
console.log(xhr.responseText)
}
}
</script>
A服务器端
cnpm i request -S
注:需要引入request模块,使得A服务器可以向B服务器端发送请求
部分代码
var request = require('request')
app.get('/cors', function(req, res) {
request('http://127.0.0.1:3000/cors2', function(err, data, body) {
res.send(body)
})
})
B服务器端
app.get('/cors2', function(req, res) {
res.send({ "name": "张三" })
})
执行结果