我想用JavaScript编写脚本。然后使用本地计算机上的浏览器启动它,以便从另一个网站下载文本文件,然后使用js处理此数据。
我尝试过:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
console.log("readyState: "+this.readyState+", status: "+this.status);
if (this.readyState == 4 && this.status == 200) {
document.getElementById("data").innerHTML = this.responseText;
}
};
xhttp.open("GET", "http://website.com", true);
xhttp.send();
但是我总是会收到此错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://website.com. (Reason: CORS request did not succeed)
我正在使用Firefox。这是不可能的吗?我不能在浏览器中使用js从其他网站下载数据吗?
答案 0 :(得分:2)
我不能在浏览器中使用js从其他网站下载数据吗?
仅当他们通过支持CORS和允许您的出身或提供JSONP(而不是ajax)API允许您使用时。
但是,由于您是在本地进行的,因此,如果要使用JavaScript进行操作,可以使用Node.js而不是在浏览器中进行操作。 Same Origin Policy适用于浏览器,特别是(用于您的保护,而不是网站的保护)。它不适用于非浏览器应用程序,例如Node.js。
或者,如果由于您认为必须而仅使用JavaScript,则可以使用许多其他工具(例如* nix上的curl
)。