Public Dropbox中的XMLHttpRequest访问文件

时间:2012-04-29 20:00:22

标签: javascript html xmlhttprequest dropbox

我正在建立一个快速的网站;因为它的性质我可以负担得起它在我的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本身?

<小时/> <击> 的更新 我已经尝试直接从Dropbox URL加载文件。

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 moment ...我已经离开测试网址,看看它是否是Dropbox问题。它链接到外部文件。解决这个问题解决了我的问题。

主要问题是从本地副本运行该文件。从Dropbox公共URL运行修复了该问题。感谢Quentin,间接引导我回答。

2 个答案:

答案 0 :(得分:2)

该错误消息是因为您在本地硬盘上托管HTML文档,而不是与您尝试加载的文件位于同一服务器上。

您无法访问for security reasons之类的资源。


网址http://www.javascripter.net/faq/requested_file.htm无法在您共享的代码中显示。它不应该产生那个错误。

答案 1 :(得分:0)

我使用了相同的方法,它完美无缺。 你的问题可能是Dropbox改变了'路径' 现在是 https://dl.dropboxusercontent.com/u/ ...... 并不是 http://dl.dropbox.com/u/