【发布时间】:2020-09-05 15:27:11
【问题描述】:
从 axios 获取 API 时出现以下错误
跨域请求被阻止:同源策略不允许读取 https://...bla bla.... 的远程资源(原因:CORS 预检 响应没有成功)
跨域请求被阻止:同源策略不允许读取 https://...blabla 的远程资源.....(原因:CORS 请求 没有成功)
我认为第二个错误是因为第一个错误。这里主要是修复第一个错误。
actions.js
export const getMetadata = srNumber => {
return (dispatch) => {
dispatch(getMetadataRequest())
axios.get(`${BASE_URL}/some path/${srNumber}`, {
headers: {
'X-JWT-Assertion': ASSERTION,
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*',
'Access-Control-Allow-Credentials': 'true',
'Access-Control-Allow-Headers': 'Content-Type, Authorization'
}
})
.then(response => {
const data = response.data
console.log("GET METADATA", data)
dispatch(getMetedataSuccess(data))
})
.catch(error => {
const errorMessage = error.message
console.error("GET METADATA", errorMessage)
dispatch(getMetadataFailure(errorMessage))
})
}
}
【问题讨论】:
-
您在 https:// ....bla 的服务器应该允许您的应用程序的主机:端口组合允许请求。参考这个enable-cors.org/server.html
-
我为同一台服务器获取了三个 api。他们两个在工作。仅此一项是行不通的
-
在服务器端启用cors,而不是客户端......
-
@deluxan 失败的 api 的响应可能会发生一些变化。你能再检查一遍吗?
标签: javascript axios cors