29

ない:

var response = $.ajax({
    type: "GET",   
    url: "http://www.google.de",   
    async: false,
    success : function() {
        alert (this);
    }
});

または:

var response2 = $.get("http://www.google.de", function(data) {
    alert("Data Loaded: " + data);
});

オブジェクトをください。へのアクセス方法を教えてくださいresponseText

4

10 に答える 10

36

次のように書き換えるだけです。

var response = '';
$.ajax({ type: "GET",   
         url: "http://www.google.de",   
         async: false,
         success : function(text)
         {
             response = text;
         }
});

alert(response);
于 2009-07-20T11:05:48.017 に答える
28

カリムが言ったように、クロスドメイン ajax は、サーバーが許可しない限り機能しません。この場合、Google は対応していませんが、多くの場合、これを回避するための簡単な方法があります。HTTP または HTTPS 経由で取得したコンテンツをローカル サーバーに渡すだけです。

たとえば、PHP を使用している場合は、次のことができます。

ファイル web_root/ajax_responders/google.php を作成します。

<?php
  echo file_get_contents('http://www.google.de');
?>

次に、コードを変更して、javascript で直接 Google のドメインに接続するのではなく、そのドメインに接続します。

var response = $.ajax({ type: "GET",   
                        url: "/ajax_responders/google.php",   
                        async: false
                      }).responseText;
alert(response);
于 2011-10-23T01:40:54.397 に答える
4

まず、クロスドメインリクエストを許可するためにJQueryプラグインをダウンロードする必要があります。ここからダウンロードしてください:https ://github.com/padolsey/jQuery-Plugins/downloads

query.xdomainsajax.jsというファイルをプロジェクトにインポートし、次のコードに含めます。

<script type="text/javascript" src="/path/to/the/file/jquery.xdomainajax.js"></script>

外部WebページのHTMLをテキスト形式で取得するには、次のように記述します。

$.ajax({
    url: "http://www.website.com",
    type: 'GET',
    success: function(res) {
        var text = res.responseText;
        // then you can manipulate your text as you wish
    }
});
于 2011-12-07T15:05:15.203 に答える
3

jquery ajax 関数では、成功のコールバック シグネチャは次のとおりです。

function (data, textStatus) {
  // data could be xmlDoc, jsonObj, html, text, etc...
  this; // the options for this ajax request
}

'dataType' パラメーターを使用して、要求したデータ型に応じて、'data' 引数を取得します。

ドキュメントから:

dataType (文字列) デフォルト: Intelligent Guess (xml または html)。サーバーから返されることを期待しているデータのタイプ。何も指定されていない場合、jQuery は、応答の MIME タイプに基づいて、responseXML または responseText のいずれかを成功のコールバックにインテリジェントに渡します。

利用可能な型 (および成功のコールバックに最初の引数として渡される結果) は次のとおりです。

"xml": jQuery 経由で処理できる XML ドキュメントを返します。

"html": HTML をプレーン テキストとして返します。含まれている script タグは、DOM に挿入されたときに評価されます。

"script": 応答を JavaScript として評価し、プレーン テキストとして返します。オプション「キャッシュ」が使用されない限り、キャッシュを無効にします。注: これにより、POST がリモート ドメイン リクエストの GET に変わります。

"json": レスポンスを JSON として評価し、JavaScript オブジェクトを返します。

"jsonp": JSONP を使用して JSON ブロックに読み込みます。「?callback=?」を追加します。URL の末尾に追加して、コールバックを指定します。(jQuery 1.2 で追加)

"text": プレーン テキスト文字列。

http://docs.jquery.com/Ajax/jQuery.ajax#optionsを参照してください

于 2009-07-20T10:13:27.780 に答える
2

私が知っている唯一の ajax クロスドメインの使用方法は、JSONP ( http://ajaxian.com/archives/jsonp-json-with-padding ) です。

そして、これは、クロスドメイン ajax を実現するためのさまざまな手法を投稿する投稿です ( http://usejquery.com/posts/9/the-jquery-cross-domain-ajax-guide ) 。

于 2010-08-06T08:20:46.747 に答える
1

実際には、Firefoxなどでクロスドメインリクエストを行うことができます。概要については、http://ajaxian.com/archives/cross-site-xmlhttprequest-in-firefox-3を参照してください。

WebkitとIE8も何らかの形でそれをサポートしています。

于 2010-08-06T08:37:59.013 に答える
0

jQuery AJAX リクエストはクロスドメインの場合に失敗するため、(PHP で) cURL を使用してプロキシ サーバーを設定できます。

PHP ファイルの Responder.php に次の内容があるとします。

$url = "https://www.google.com";
$ch      = curl_init( $url );
curl_set_opt($ch, CURLOPT_RETURNTRANSFER, "true")
$response= curl_exec( $ch );
curl_close( $ch );
return $response;

AJAX リクエストは、クロスドメイン リクエストを実行するために、この Responder.php ファイルに対して行う必要があります。

于 2015-04-19T12:33:09.017 に答える
-2

これを試して

alert( data['responseText'] );
于 2016-08-13T19:14:48.053 に答える