在预检响应中允许在Access-Control-Allow-Header中提交请求标头

时间:2018-05-09 00:47:49

标签: node.js express header cors axios

我尝试axios调用外部域名: https://viacep.com.br/ws/20021040/json/(致电返回有关邮政编码的任何信息)

axios.get('https://viacep.com.br/ws/20021040/json')
              .then((response) => {
                alert(JSON.stringify(response))
              })
              .catch((error) => {
                alert(error)
              })

在前端我用:

  • axios:v0.17.1
  • vue:v2.5.3
  • webpack:3.6.0

在后端我使用expressjs / nodejs并安装快递公司来处理这种情况。

  • node 9.8.0
  • express 4.15.2
  • cors 2.8.4

我需要弄清楚如何在预检响应中允许Access-Control_allow-Header中的Request头字段授权工作正常。

我在我的localhost:8021

进行开发

授权是具有我的身份验证凭据(JWT)的令牌。

在下图中,任何测试都会发表评论。

enter image description here

最诚挚的问候。

我的最后一次测试是:

var corsOptions = {
    origin: true,
    allowedHeaders: ['Content-Type', 'authorization', 'Content-Length', 'X-Requested-With', 'Accept'],
    exposedHeaders: ['authorization'],
    methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'],
    // optionsSuccessStatus: 204, // some legacy browsers (IE11, various SmartTVs) choke on 204
    preflightContinue: false
}
app.use(cors(corsOptions))

但它无论如何都不起作用...... =(

1 个答案:

答案 0 :(得分:0)

尝试:

res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept')
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, PATCH, OPTIONS');