据我所知,在服务器上托管内容的人可以设置CORS标头,以指定谁可以访问此内容以及他们可以做什么。所有者还可以通过仅允许通过使用Access-Control-Allow-Origin标头允许特定站点来阻止某些站点访问这些项目。
这是否正确,还是我误解了CORS的工作原理?
我正在尝试从不受控制的服务器访问信息,并且收到以下CORS错误。我 am 使用了所有者提供的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属性控制。
我几乎不知道这意味着什么,并且我已经做了很多阅读以试图理解它。如果有明显的修复,请进一步进行解释,谢谢!