3

JavaScript を使用して別のドメインからプレーン テキスト ファイルをダウンロードして解析することはできますか?

私はこれまでのところこのフィドルを持っていますが、私が間違っていることを理解するのに行き詰まっています.

マークアップ:

  <div id="clickme">Click me</div>
  <div id="result">Result: </div>

コード:

$("#clickme").click(function() {
  /* ###################################
     NOTE: im on say example.com/test.html but trying
     NOTE: to access different_domain_sample.com
   */
  var req = new XMLHttpRequest();
  var sURL = "http://www.google.com/robots.txt";

  req.open("GET", sURL, true);
  req.setRequestHeader("User-Agent", "blah/4.2");

  req.onreadystatechange = function() {
    if (req.readyState == 4) {
        $("#result").text("Result is: <pre>" + req.responseText + "</pre>");
    }
  };
  req.send(null);
});

すでに回答済みですが、これに関する詳細はこちらクロスオリジン リソース共有

4

2 に答える 2

4

これは、クロスサイト スクリプティング防止と呼ばれる機能がブラウザーに実装されているためです。たとえば、同じサーバー上のphpファイルでajaxリクエストを実行し、そのクエリでcurlを使用してターゲットページをクエリできます。

于 2012-04-21T08:38:24.070 に答える
3

これを行うには、次の 3 つの方法があります。

  1. ドメインから提供される非ブラウザベースのプロキシの助けを借りて、あなたに代わってデータを取得します。同一生成元ポリシーをバイパスできるプラグインを使用することもできます。
  2. 同一生成元ポリシーを回避するために、JSONP または別の同様のハッキング方法を使用します。これには、Web サーバーが JSONP をサポートする必要があります。
  3. クロスオリジン ポリシーを無効にします (絶対にお勧めできません非常に危険です) 。
于 2012-04-21T08:37:34.260 に答える