javascript - cors 请求获取响应
问题描述
好的,这么奇怪的错误。我有一个通过 fetch 函数获取数据的反应应用程序
fetch('https://port.abendago.com/index.php?controller=departments&route=getAll')
该应用程序位于firebase服务器上,因此不同的域等......
https://vanport-debba.web.app/
现在,在控制台中,我看到请求发出,服务器响应。如果我查看响应,我会在响应中看到数据(json 数据)。但是,控制台仍然给出 CORS 错误,我的应用程序没有对数据做任何事情。
在服务器上,我添加了所有各种 CORS 标头(您可以在上述 URL 的响应标头中看到)。我的服务器团队说我需要更改我的反应服务器上的某些内容?或反应应用程序?我一直在尝试各种东西,但没有任何效果。
网络服务器(端点服务器)正在运行 plesk 和 apache 和 nginx
解决方案
原因可能仍然与服务器有关。我尝试 cors 请求上述 url 并得到如下响应标头:
Access-Control-Allow-Origin: '*'
Access-Control-Allow-Origin: 'https://vanport-debba.web.app/'
Access-Control-Allow-Origin: 'https://vanport-debba.web.app'
Access-Control-Allow-Origin: https://vanport-debba.web.app/
Access-Control-Allow-Origin: https://vanport-debba.web.app
Access-Control-Allow-Origin: *
如您所见,它发送了多个响应标头,Access-Control-Allow-Origin
这正是我遇到的 cors 错误:
CORS 策略已阻止从源“ http://localhost:3000 ”获取“ http://port.abendago.com/index.php?controller=departments&route=getAll ”的访问权限:“访问控制允许” -Origin'标头包含多个值' http://localhost:3000 '、'*'、' https : //vanport-debba.web.app/'、'https : //vanport-debba.web.app'、https ://vanport-debba.web.app/,https://vanport-debba.web.app, *',但只允许一个。让服务器发送带有有效值的标头,或者,如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。
IE
“Access-Control-Allow-Origin”标头包含多个值
让服务器发送具有有效值的标头
如果您查看Mozilla 开发人员文档,它会提到
服务器发送了多个 Access-Control-Allow-Origin 标头。这是不允许的。
让您的服务器团队重新审视这一点并查看 cors 配置。它应该简单地返回Access-Control-Allow-Origin: *
推荐阅读
- c - 仅打印带空格的五位数字的代码
- c++ - 普通变量可以保存 C++ 中其他变量的内存地址吗?
- sql - SQL:如何添加一个虚拟列(每个单元格包含“A”,或者一个整数或其他一些字符串
- curl - 从谷歌开发者那里获取授权令牌
- angular - NgrX 效果重定向角度
- java - Java中的数值集成
- excel - 根据唯一的“ID”列将行从一个工作表复制到另一个工作表?
- javascript - 我如何计算然后在 Web 表单上显示已选中但并非全部选中的特定复选框
- c# - .Net 5+ 创建平台无关的 RSA 密钥对的方法
- javascript - 如何在 React Native 中保持 FastImage 的图像行为?