很多时候我们需要在本地调试项目,而通过express+nodejs+mongoDB我们可以很快搭建一个本地服务器,一般在3000端口,由于React与服务器所在端口不同,所以需要进行跨域访问,在express中只需加入以下修改
app.all('*', function (req, res, next) {
//响应头指定了该响应的资源是否被允许与给定的origin共享。*表示所有域都可以访问,同时可以将*改为指定的url,表示只有指定的url可以访问到资源
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
//允许请求资源的方式
res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1');
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
express修改完之后,修改React,在package.json中加入proxy代理,就可以实现简单的跨域访问了
"proxy": {
"/api": {
"target": "http://localhost:3000",
"changeOrigin": true,
"pathRewrite": { "^/api" : "" }
}
}
这时访问http://localhost:8000/api就可以成功访问啦Laaaaa