Javascript Axios api调用-加载失败,飞行前响应无效(重定向)
当我在端口3333上使用AdonisJs框架在Nodejs中运行下面的代码时,是否有任何原因可以解释下面的代码工作正常Javascript Axios api调用-加载失败,飞行前响应无效(重定向),javascript,node.js,reactjs,axios,Javascript,Node.js,Reactjs,Axios,当我在端口3333上使用AdonisJs框架在Nodejs中运行下面的代码时,是否有任何原因可以解释下面的代码工作正常 但是如果我在componentWillMount的3000端口上运行React应用程序,我会得到错误 Failed to load https://jsonodds.com/api/odds/nfl: Response for preflight is invalid (redirect) componentWillMount(){ axios.get("https:
但是如果我在componentWillMount的3000端口上运行React应用程序,我会得到错误
Failed to load https://jsonodds.com/api/odds/nfl: Response for preflight is invalid (redirect)
componentWillMount(){
axios.get("https://jsonodds.com/api/odds/nfl", {headers: {"X-Api-Key": "xxx"}})
.then(function (response) {
console.log(response)
})
.catch(function (error) {
console.log(error);
});
}
飞行前请求是由浏览器发送的请求 NodeJS只是不发出飞行前请求,因为它不需要实现CORS 飞行前请求是选项请求(因此不需要响应正文),也不允许重定向 要解决此问题,您需要正确配置API端,以便它不会返回选项请求的重定向
[UPD]如果您无法接触API服务器,您可以实现自己的后端代理,该代理将从前端接收请求,并在内部询问API服务器。将不会应用CORS(飞行前有限制),而且您的API密钥将保密您也可以使用API代码吗?我可以将其私密消息发送给您,我不希望将其发布在此处,因为API限制可能我无法访问API端。我读了一点,但还是有点困惑。按照我的理解,我无法直接删除或更新api。有没有其他方法来解决这个问题,即使现在只是在开发方面?@born2gamble是的,您可以询问自己的BE,它将向API服务器发送请求(无任何CORS预飞行)。这也意味着你将不会暴露我也面临的API密钥名问题,jquery请求工作正常,但我使用axios cors时出现错误。@BijitashyaBirinchi我猜你已经配置了
axios
发送额外的头(授权?),但没有对jquery
version@skyboyeraxios.post('https://test.pvi.com/j_spring_security_check“,{withCredentials:true,crossorigin:true,Header:{common:{‘访问控制请求方法’:‘POST’,‘访问控制请求头’:‘来源,x-requested-with’,//‘来源’:’https://localhost:5000“,'X-Api-Key':'xxx'},数据:JSON.stringify({j_用户名:电子邮件,j_密码:密码})})