如何解决CORS随机阻止请求
我目前正在使用api rest,我通过URI传递控制器参数,版本和操作。但是,当我使用超过19个字符的URI执行请求时,会出现此CORS错误:
CORS策略已阻止从来源“ http:// localhost:3000”访问“ http:// my-api-host / toll / vehicle / v1 / list”上的XMLHttpRequest:对预检请求的响应没有t通过访问控制检查:它没有HTTP正常状态。
在身份验证中,即使具有超过19个字符的URI,该请求也可以使用。但是,任何其他具有不同URI且长度超过19个字符的请求都会出现此错误。我使用我的应用程序的API,请求正常运行。
我在Reactjs中使用axios。该api已经配置为接受我正在使用的内容类型(应用程序/ json),并且还已经接受来自不同来源的请求。
我的请求代码:
request(uri,params = {}){
return new Promise((resolve,reject) => {
axios
.post('http://my-api-host' + uri,JSON.stringify(params),{
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
if (response.data.success) {
resolve(response.data);
} else {
reject(response.data);
}
});
});
};
奇怪的是,如果我在API中打印一些数据,则请求返回200,并且我捕获了所打印的数据。在执行此操作之后,它可以处理之前给出此错误的所有请求,然后在api中再次打印一些数据,然后再次运行。是不是很奇怪?
解决方法
已解决!
问题是我的API接受了请求,但未正确处理OPTIONS请求,并且未使用代码200进行响应。
解决方案:
除了接受代码200响应之外,我还对REQUEST_METHOD为OPTIONS时进行了比较。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。