【发布时间】:2019-12-19 06:26:30
【问题描述】:
我的网站包含主站点索引分析。 早些时候我在https://www.status.webcoder.sk 上的 PHP 中有它,但现在我试图在https://www.webcoderstatus.herokuapp.com 上的 nodejs 中做到这一点,但我有 1 个问题。
从 url 的文本文件中获取数据在 php 中没有问题,但是当我尝试使用 JavaScript 时,CORS 策略有问题。
我的代码是:
function getText(){
var request = new XMLHttpRequest();
request.open('GET', 'https://www.webcoder.sk/config/devices.txt', true);
request.send(null);
request.onreadystatechange = function () {
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader('Content-Type');
if (type.indexOf("text") !== 1) {
return request.responseText;
}
}
}
}
$(document).ready(function() {
var devices = getText();
console.log(devices);
});
这是错误信息: (索引):1 从源“https://webcoderstatus.herokuapp.com”对“https://www.webcoder.sk/config/devices.txt”处的 XMLHttpRequest 的访问已被 CORS 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。
【问题讨论】:
-
您必须将 CORS 策略添加到您的后端。您可以在标题中手动添加它,或者,由于您使用的是 nodejs,您可以安装 cors 模块并将 app.use(cors()) 放在您的服务器上。
-
是的,如果您无法控制webcoder.sk 后端,您应该从您的后端进行调用。这避免了所有 CORS 问题。
-
@MattKuhns 我可以控制 webcoder.sk
-
@FZs 类似,但我一直在寻找很多这样的文章,但没有人帮助我,所以我不得不做这个并彻底描述它。
标签: javascript node.js xmlhttprequest same-origin-policy