2

Web上にWebページがあるとすると、このページにはIDを持つ多くの要素があります。javascriptを使用してこれらの要素をフェッチするにはどうすればよいですか?私はこのチャンクをjQueryで使用しました:

    $.get(websiteUrl, {}, function(results){
    //alert(results); // will show the HTML from anotherPage.html
    console.log($(results).find("bookId").html()); // show "bookId" div in results
    });

しかし、エラーが発生します:

 XMLHttpRequest cannot load; Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.

実際、AndroidのPhonegapアプリのウェブページからデータを取得しようとしています。これを行う方法はありますか?

4

2 に答える 2

1

ほとんどのブラウザは、厳密な同一生成元ポリシーに準拠しています。つまり、別のサーバーにAjaxリクエストを送信することはできません。それを回避することはできますが、すべてのクライアントで行うのは実用的ではありません。

最善の策は、サーバー側スクリプトを呼び出してそれをフェッチし、結果をJavaScriptに返すことです。

于 2012-05-19T07:54:17.267 に答える
1

エラーやタイムアウトのコールバックは発生しませんが、jsonpを使用してクロスドメインのajax呼び出しを行うことができます。jsonpはjQueryによってネイティブにサポートされています。 http://api.jquery.com/jQuery.ajax/ 理論は、コールバック関数の名前を含む慎重に形成されたURLを使用してスクリプトタグをページに追加することです。次に、サーバーはajaxの「リクエスト」を処理し、コールバック関数の単一のパラメーターとして回答を返します。

于 2012-05-19T07:59:59.643 に答える