javascript - 获取 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 build
2)即使我使用该部件,我使用的服务器上的完全相同的应用程序也根本无法工作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));
}
解决方案
在这里,我发现您需要在 .php 文件的顶部添加以下内容:
header('Access-Control-Allow-Origin: *');
它允许从同一来源获取
(感谢 ADyson 的链接)
如果有人认为这是一个安全问题,请告诉我!谢谢
推荐阅读
- html - 如何在 div 中为 CSS 选择多个元素
- python - 如何使用正则表达式将字符串元素转换为列表?
- python - 无法使用 Python 从 html 文件中提取查找/提取所有标签
- node.js - 节点将数据从一个视图解析到另一个视图
- python - 为什么我必须明确地写出一个列表才能使这个函数起作用?
- c# - 如何使用 PublicKey.EncodedKeyValue.Format(true) 从 X509Store 获取公钥
- javascript - 如何从节点模块导入 css?
- java - 复选框上的列表视图滚动问题
- calliope - 是否有可能使用 makecode.calliope.cc 控制 RGB LED?
- git - Git - 按分支/标签名称递归列出文件