【发布时间】:2020-03-15 20:39:42
【问题描述】:
我在尝试从 web 访问一些名为 rajaongkir api 的 API 时遇到错误,它显示错误 400 并且没有访问控制来源。它需要一个标题“密钥”才能工作我已经在邮递员上测试过它并且效果很好。请帮帮我
代码:
componentDidMount(){
const key = {
method: 'GET',
headers: { 'key': '11sss8ba9eeb9e4845c01edc3e62e62b80b', 'content-type': 'application/json' },
url: 'https://api.rajaongkir.com/starter/province'
}
axios(key).then(response => {
this.setState({ provinsi: response.data.results });
}).catch(error => {
console.log(error)
})
}
错误:
Failed to load resource: the server responded with a status of 400 (Bad Request)
:8000/#/profil:1
Access to XMLHttpRequest at 'https://api.rajaongkir.com/starter/province' from origin 'http://127.0.0.1:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我已经尝试允许原始访问,它只是删除了否“访问控制..”但仍然被 cors 策略阻止
【问题讨论】:
-
它会帮助你。从 API 处理的 Cors 策略错误。看到这个stackoverflow.com/a/58835950
-
在使用 create-react-app 或 react-scrpts 在 webpack 开发服务器中运行您的应用时,您可以 set up a proxy。如果您的生产应用位于另一个域、子域或端口上,请确保它提供正确的 CORS 标头。