为了保持前后端的独立性,在现实中我们常常将前后端分离成两个project,并分别开在不同的接口。这是如果直接访问后端接口,就会报错——跨域错误。如图所示:
网络上的解决方法有很多种,我这里提出一种方法。声明:我前端用的是react,后端用的是node,没有用到jQuery。
1. 在后台的app.js(或者你自己命名的入口文件如server.js等)中,添加一个允许跨域请求头的设置即可
// 导入koa,和koa 1.x不同,在koa2中,我们导入的是一个class,因此用大写的Koa表示:
const Koa = require('koa');
const app = new Koa();
// 设置跨域
app.use(async (ctx, next) => {
ctx.set("Access-Control-Allow-Origin", "*");
await next();
})
2. 前端设置请求模式为跨域。
fetch(getPageRank,{
method: "POST",
//这里是关键的一步
mode: "cors",
headers: {'Accept': 'application/json,text/plain,*/*'}
}).then(r => {
console.log(r);
return r.json();
})