javascript - 如果 CORS 拒绝我的 API 请求并且我不控制服务器,我无能为力吗?
问题描述
据我了解,在其服务器上托管内容的人可以设置 CORS 标头,指定谁可以访问此内容以及他们可以用它做什么。所有者还可以通过使用 Access-Control-Allow-Origin 标头仅允许特定站点来阻止某些站点访问这些项目。
这是正确的,还是我误解了 CORS 的工作原理?
我正在尝试从我无法控制的服务器访问信息,并且收到下面的 CORS 错误。我正在使用所有者提供的 API,但我正在从我的本地主机开发服务器发出请求,并想知道这是否会导致问题?我正在使用 Quasar 和 Vue 进行开发,而且我对一般开发非常非常陌生 - 请原谅任何明显的错误/疏忽。
这是我的代码:
var data = null;
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener('readystatechange', function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open('GET', 'url');
xhr.setRequestHeader('X-Correlation-Id', 'id');
xhr.setRequestHeader('content-type', 'something+json; UTF-8');
xhr.setRequestHeader('authorization', 'Basic username:password');
xhr.send(data);
我收到了这个:
从源“ http://localhost:8080 ”访问“url”处的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:“Access-Control-Allow-Origin”的值当请求的凭据模式为“包含”时,响应中的标头不能是通配符“*”。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
我几乎不知道这意味着什么,并且我已经做了很多阅读以试图理解它。如果有明显的修复,请进一步向我解释 - 谢谢!
解决方案
您可以随时使用 CORS 代理,例如cors-anywhere,甚至可以自己制作.
推荐阅读
- exact-online - itgenoda074 SysAccessDenied 检索 DocumentAttachmentFiles 中的二进制 blob
- firebase - Firestore 安全规则不起作用
- git - 当我拉动时如何配置 git 使其不会创建合并提交?
- angular - 将参数发送到另一个组件
- css - 角度材料弯曲中心和右对齐
- excel - Excel 共享文件随机锁定特定单元格
- c# - 在 foreach 中通过引用从 Collection 中获取元素
- angular - 角度 2 - 6 日期表单字段防止清除
- javascript - Typescript 从 JavaScript 迁移,构建错误
- python - 只要按住拍摄按钮,如何继续拍摄