Reactjs 在React js中点击FetchAPI时,Get方法被转换为选项

Reactjs 在React js中点击FetchAPI时,Get方法被转换为选项,reactjs,Reactjs,我试图点击下面的api,并要求基本的身份验证用户名和密码和方法允许在这是唯一的得到 dispatch(requestBegin()); let apiPath = `xxxx/TEST/appservice/api/app/10/10000127201901`; return fetch(apiPath, { method: 'get', headers : { "contentType":"application/x-www-form-urlencoded", "

我试图点击下面的api,并要求基本的身份验证用户名和密码和方法允许在这是唯一的得到

dispatch(requestBegin());
let apiPath = `xxxx/TEST/appservice/api/app/10/10000127201901`;
return fetch(apiPath, {
  method: 'get',
  headers : {
     "contentType":"application/x-www-form-urlencoded",
      "Authorization" : 'Basic '+btoa('xxx:xxx'),
    },
})
  .then((response) => {
    dispatch(getEventsEnds(json));
  })
  .catch((error) => {
    dispatch(getEventsEnds());
  });
控制台中记录的错误:

对飞行前请求的响应未通过访问控制检查:否 “Access Control Allow Origin”标头出现在请求的服务器上 资源。因此,不允许使用源“” 通道响应的HTTP状态代码为405。如果一个不透明的响应 根据您的需要,将请求的模式设置为“无cors”以获取 已禁用CORS的资源

选项405(方法 (不允许)


当我试图点击get api时,有人能请eplain吗?为什么它会显示选项

,这意味着您的api服务器不接受CORS请求或来自本地主机的请求

查看您的API文档,但我猜您将无法从web应用程序直接与它交互

最好的选择是使用代理,您可以自己开发一个代理,或者使用节点http代理之类的东西来代理API调用。(有php或python等价物)

代理服务器将能够发出请求,然后将它们转发到您的应用程序

建议进一步阅读:在谷歌上输入理解CORS,并阅读更多相关内容

有关本地发展,请查看:


当客户端api URL和服务器URL(包括端口号)不匹配时,会发生此问题。在这种情况下,您需要为CORS启用服务,这是跨源资源共享

使用npm安装cors


请参考此
[参考][1]

您在一个端口上为应用程序提供服务
2200
,而您的API很可能在另一个端口上。@Henrikanderson那么解决方案是什么?react end有解决方案吗?我们可以使用这种api吗?如果没有,那么api端的解决方案是什么?我们有关于它的例子吗?请花时间阅读CORS,如果你想做前端开发,它是基础知识。你不能从前端做任何事情(反应或不反应)。如果在开发过程中需要使用API,请在本地计算机上使用代理(添加了链接)。当部署到生产环境时,请确保您的域已被API列入白名单