React JS - 请求的资源上不存在“Access-Control-Allow-Origin”标头。跨域资源错误
Posted
技术标签:
【中文标题】React JS - 请求的资源上不存在“Access-Control-Allow-Origin”标头。跨域资源错误【英文标题】:React JS - No 'Access-Control-Allow-Origin' header is present on the requested resource. Cross Origin Resource Error 【发布时间】:2019-08-01 11:48:22 【问题描述】:我在 React Web 应用程序中使用 Fetch 进行 API 调用(在另一个域上运行)。我收到错误跟随错误。
访问获取 来自源“http://localhost:3000”的“--------API URL------”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。如果不透明的响应满足您的需求,请设置请求的 模式为“no-cors”以获取禁用 CORS 的资源。
我还在 *** 上阅读了几个关于同一问题的答案,标题为“Access-Control-Allow-Origin”,但仍然无法弄清楚如何解决这个问题。我不想在 Chrome 中使用扩展程序或使用临时 hack 来解决这个问题。请提出解决上述问题的标准方法。
我的代码如下所示。
return fetch('-----------API URL--------',
method:'GET',
mode: 'cors',
headers:
'Access-Control-Allow-Origin':'*'
,
)
.then((response) => response.json())
.then((responseJson) =>
console.log(responseJson.ALLORDERSRX);
this.setState(
isLoading: false,
dataSource: responseJson.ALLORDERSRX,
, function()
);
)
.catch((error) =>
console.error(error);
);
【问题讨论】:
简而言之:您尝试访问不同的 url(在您的情况下是具有不同端口的 localhost),然后是为您的 react 应用程序提供服务的 url。您可以通过更改服务器端代码来解决此问题,以同时为应用程序提供服务并侦听 API 请求。 【参考方案1】:const proxyurl = "https://cors-anywhere.herokuapp.com/";
const url = 'https://api.liveconnect.in/backend/web/erpsync/get-all-orders?data=dbCode=UAT04M%7Cidx=100%7CuserId=6214%7Cres_format=1'; // site that doesn’t send Access-Control-*
fetch(proxyurl + url).then((resp) => resp.json())
.then(function(data)
console.log(data);
)
.catch(function(error)
console.log(error);
);
从这里找到:No 'Access-Control-Allow-Origin' header is present on the requested resource—when trying to get data from a REST API
【讨论】:
以上是关于React JS - 请求的资源上不存在“Access-Control-Allow-Origin”标头。跨域资源错误的主要内容,如果未能解决你的问题,请参考以下文章
React - CORS 问题请求的资源上不存在“Access-Control-Allow-Origin”标头
获取“被 CORS 策略阻止:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。”使用 Axios 使用 MERN 堆栈
请求的资源 React Django 错误上不存在“Access-Control-Allow-Origin”标头
Nodejs React CORS 策略:请求的资源上不存在“Access-Control-Allow-Origin”标头
React 组件已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头
在 React 错误时调用 Django Api 时,请求的资源上不存在“Access-Control-Allow-Origin”标头