web-dev-qa-db-ja.com

jQuery.get()からresponseTextを返します

私はこのようなことをしようとしました:

var msg = $.get("my_script.php");

Msgはmy_script.phpによって返されるテキストに設定されると思いました。 jqXHRオブジェクトのresponseText。 msgは常に「[objectXMLHttpRequest]」に設定されているため、このようには機能しないようです。

私がやりたいことをするための簡単な1行の方法はありますか?

ありがとう。

12
Yann Milin

いくつかのテストの後、私は解決策を見つけることになりました。

呼び出しを同期させる必要があります。$。getの短縮関数は常に非同期であるため、次のように$ .ajaxを使用する必要があります。

var msg = $.ajax({type: "GET", url: "my_script.php", async: false}).responseText;

あなたの答えに感謝して、これを行うためのより良い方法はないと思います。

31
Yann Milin

いつでも使用できます:

var msg;
$.get("my_script.php", function(text) {
  msg = text;
});

何らかの理由で応答がテキストである場合、リモートスクリプトがコンテンツタイプをJSONのようなものに変更している可能性があるため、jQueryは出力する前に文字列を解析しようとします。

6
Vitor M

戻り値は、単にajaxリクエストに使用されるjqXHRオブジェクトです。応答データを取得するには、コールバックを登録する必要があります。

$.get("my_script.php", function(data) {
  var msg = data;
  alert(msg);
});
2
njr101

応答テキストは、成功コールバックで利用できます。そこで必要なことをしてください。

1
Dave Newton