首页 > 解决方案 > 获取 php 页面时返回 CORS 错误的函数

问题描述

我正在做一个以这种方式使用函数 fetch 的 ReactJs 应用程序:

我的服务器上有一个打印随机报价的 .php 页面,我想从托管在同一服务器上的 React 应用程序中获取此报价。但这很奇怪,我会解释一下:

1)从我的电脑:let newText = await fetch("https://cors-anywhere.herokuapp.com/http://www.MYURL.com/actionv/API/aov_API.php");将按预期工作,如果我删除https://cors-anywhere.herokuapp.com/它不会工作的部分(不知道为什么)

npm run build2)即使我使用该部件,我使用的服务器上的完全相同的应用程序也根本无法工作https://cors-anywhere.herokuapp.com/......

“不起作用”意味着我收到此错误:

(索引):1 访问“ http://www.MYURL.com/actionv/API/aov_API.php ”获取(重定向自“ https://cors-anywhere.herokuapp.com/http://www. MYURL.com/actionv/API/aov_API.php ') 来自“ http://www.MYURL.com ”的来源已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头. 如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。App.js:8 GET http://www.MYURL.com/actionv/API/aov_API.php net::ERR_FAILED asyncToGenerator.js:6 Uncaught (in promise) TypeError: 无法获取

完整的功能:

function App(){
  async function updateQuote(type){
    let newText = await fetch("https://cors-anywhere.herokuapp.com/http://www.MYURL.com/actionv/API/aov_API.php");
    let msg = await newText.text();
    console.log(msg);
    setQuoteText(JSON.stringify(msg));
  }

标签: javascriptphpreactjscorsfetch

解决方案


在这里,我发现您需要在 .php 文件的顶部添加以下内容:

header('Access-Control-Allow-Origin: *');

它允许从同一来源获取

(感谢 ADyson 的链接)

如果有人认为这是一个安全问题,请告诉我!谢谢


推荐阅读