2

私は簡単なウェブサイトを構築しています。その性質上、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自体が原因ですか?


更新 ドロップボックスの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'ohmoment…Dropboxの問題かどうかを確認するためにテストURLを残しました。外部ファイルにリンクしました。それを修正すると私の問題が修正されました。

主な問題は、ローカルコピーからファイルを実行することでした。DropboxのパブリックURLから実行すると、問題が修正されました。間接的に答えに導いてくれたQuentinに感謝します。

4

2 に答える 2

2

このエラー メッセージは、ロードしようとしているファイルと同じサーバーではなく、ローカル ハード ディスクで HTML ドキュメントをホストしているためです。

セキュリティ上の理由から、そのようなリソースにはアクセスできません。


URLhttp://www.javascripter.net/faq/requested_file.htmは、共有したコードのどこにも表示されません。そのエラーは発生しません。

于 2012-04-29T20:02:01.647 に答える
0

私は同じアプローチを使用しましたが、問題なく動作します。あなたの問題は、 Dropboxが「パス」を変更したことかもしれ ませ

于 2013-05-01T02:44:43.027 に答える