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