利用express简单实现同源请求
新建个origin.js, 导入express,添加个路由:
app.get('/home', (req, res)=> { res.sendFile(__dirname+'/index2.html'); });
终端输入node origin.js.
express设置监听端口是8000,打开http://127.0.0.1:8000/home就能访问本地index.html,此时index2里简单发起一个AJAX请求:
btn.onclick = function () {
const xhr = new XMLHttpRequest();
xhr.open('GET', '/data'); //此处不要补全http://127.0.0.1:8000,因为网页端和后端已经同源。
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
console.log(xhr.response);
}
}
}
}
express继续添加一个路由
app.get('/data', (req, res)=>{ res.send('数据'); })
此时就同源获取了后端返回的 '数据'。
重点是,这里利用了nodejs打开了index.html,然后再index.html打开了同源的/data,自然可以访问/data里返回的数据了。