Axios:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Methods

Posted

技术标签:

【中文标题】Axios:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Methods【英文标题】:Axios : Request header field Access-Control-Allow-Methods is not allowed by Access-Control-Allow-Headers in preflight respones 【发布时间】:2017-12-02 17:40:02 【问题描述】:

我正在尝试从 onesignal api 发送 POST 请求

代码

axios(
  method: 'post',
  url: 'https://onesignal.com/api/v1/notifications',
  headers: 
    'Authorization': 'Basic NTRjZDY1O....',
    'Content-type': 'application/json; charset=utf-8',
    'Access-Control-Allow-Origin':'*',
    'Access-Control-Allow-Methods': 'POST',
    'Access-Control-Allow-Headers':'*',
    'cache-control': 'no-cache'
  ,
  data: 
    "app_id": "8e86143e-00.......",
    "contents": 
      "en": "test api"
    ,
    "included_segments": [
      "All"
    ]
  
).catch(function (error) 
  if (error.response) 
    console.log('error-response-data-'+error.response.data);
    console.log('error-response-status-'+error.response.status);
    console.log('error-response-headers-'+error.response.headers);
   else if (error.request) 
    console.log('error-request-'+error.request);
   else 
    console.log('Error', error.message);
  
);

错误输出

XMLHttpRequest 无法加载 https://onesignal.com/api/v1/notifications 请求头字段 Access-Control-Request-Methods 不允许 预检响应中的 Access-Control-Allow-Headers

error log

会修复它,但它没有。有没有人知道这个错误和/或我该如何解决它?我正在使用 Firebase 托管

【问题讨论】:

有什么解决办法吗? 【参考方案1】:

CORS 应在服务器端启用,以便访问 API

【讨论】:

我正在使用 Firebase 托管

以上是关于Axios:预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Methods的主要内容,如果未能解决你的问题,请参考以下文章

axios 和 reactjs:预检响应具有无效的 HTTP 状态代码 400

Azure APIM 在预检和从 axios 发出的 GET 请求时返回空响应正文,状态代码为 200

AWS API Gateway CORS 问题 - JS

CORS 策略:使用 axios 时,在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin

CORS 预检响应未成功

预检响应中的 Access-Control-Allow-Headers 不允许请求标头字段 <field-name>