您的位置:首页 > Web前端 > Node.js

axios、node交互跨域请求

2018-03-17 22:15 246 查看
axios不能跨域请求,但是如何服务器端设置了

res.header(“Access-Control-Allow-Origin”, ‘*’);访问权限所有

axios便能够访问了

在此中如何未设置access-control-allow-origin,post请求报错

Failed to load http://localhost:3000/goods/addCart: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8080’ is therefore not allowed access.

在此中如何未设置access-control-allow-origin,get请求报错

Failed to load http://localhost:3000/goods/list?page=4&pageSize=8&sort=1&priceLevel=all: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:8080’ is therefore not allowed access.

为post请求设置access-control-allow-origin,又会报一个错

Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight respon

最终实现的解决方案:

在app.js设置统一设置

这里写代码片
//设置跨域访问

app.use(function (req, res, next) {

res.header(‘Access-Control-Allow-Origin’, ‘*’);

res.header(‘Access-Control-Allow-Headers’, ‘Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild’);

res.header(‘Access-Control-Allow-Methods’, ‘PUT, POST, GET, DELETE, OPTIONS’);

if (req.method == ‘OPTIONS’) {

res.send(200); /让options请求快速返回/

} else {

next();

}

})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息