【发布时间】:2019-02-17 00:10:42
【问题描述】:
我使用 Vue-cli 制作了一个 Vue.js 应用程序,并希望从后端使用受限 api。
为了避免 CORS 问题在我的应用程序的 server.js 中,我设置了这个:
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Credentials", "true");
res.header("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.header("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
next();
});
但是,当我使用 Vue.js 组件的授权标头发出请求时:
axios.get('http://127.0.0.1:3000/api/article', headerConfig)
.then( res => this.article = res.data)
.catch(error => console.log(error))
}
我还是明白了:
Failed to load http://127.0.0.1:3000/api/article: Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
感谢您帮助解决此问题。
【问题讨论】:
-
检查这个enable-cors.org/server_expressjs.html。在您的“Access-Control-Allow-Headers”标题中还有一个
Access-Control-Allow-Headers正常吗? -
抱歉,不知道您所说的“正常”是什么意思,我将此
headers: { Authorization: this.token, crossdomain: true }作为请求 axios'headerConfig发送。 -
我在谈论
app.use(),检查这一行:res.header("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");你发送Access-Control-Allow-Headers作为Access-Control-Allow-Headers中的标题 -
那应该是什么?我刚刚从 SO 的回复中复制了它以解决 CORS 问题。
-
您尝试过enable-cors.org/server_expressjs.html 中的内容吗?
标签: node.js express vue.js axios