我正在建立一个快速网站;由于它的性质,我有能力将它托管在我的 Dropbox 公用文件夹中。我正在尝试使用 XMLHttpRequest 读取一些文本文件:
function getParameters() {
var oRequest = new XMLHttpRequest();
var sURL = "http://dl.dropbox.com/u/7828009/Relay%20Fundraising%20Site/parameters.txt";
// var sURL = "file:///parameters.txt";
oRequest.open("GET",sURL,false);
oRequest.onreadystatechange = function (oEvent) {
if (oRequest.readyState === 4) {
if (oRequest.status === 200) {
console.log(oRequest.responseText)
} else {
console.log("Error", oRequest.statusText);
}
}
};
oRequest.setRequestHeader("User-Agent",navigator.userAgent);
try {
oRequest.send(null)
} catch (err) {
alert(err);
}
if (oRequest.status==200) alert(oRequest.responseText);
else alert("Error executing XMLHttpRequest call!");
}
我在 send() 行中收到 XMLHttpRequest 101 错误,我不知道如何解决这个问题。确切的错误是
XMLHttpRequest cannot load http://dl.dropbox.com/u/7828009/Relay%20Fundraising%20Site/parameters.txt. Origin null is not allowed by Access-Control-Allow-Origin.
我可以做些什么来解决这个问题,还是因为 Dropbox 本身?
http://dl.dropbox.com/u/7828009/Relay%20Fundraising%20Site/main.htm
现在是新错误
XMLHttpRequest cannot load http://www.javascripter.net/faq/requested_file.htm. Origin http://dl.dropbox.com is not allowed by Access-Control-Allow-Origin.
我能做些什么呢?
更新 2: D'oh 时刻……我留下了一个测试 URL,看看它是否是 Dropbox 问题。它链接到外部文件。解决了我的问题。
主要问题是从本地副本运行文件。从 Dropbox 公共 URL 运行解决了该问题。感谢昆汀,间接引导我找到答案。