私はこのようなことをしようとしました:
var msg = $.get("my_script.php");
Msgはmy_script.phpによって返されるテキストに設定されると思いました。 jqXHRオブジェクトのresponseText。 msgは常に「[objectXMLHttpRequest]」に設定されているため、このようには機能しないようです。
私がやりたいことをするための簡単な1行の方法はありますか?
ありがとう。
いくつかのテストの後、私は解決策を見つけることになりました。
呼び出しを同期させる必要があります。$。getの短縮関数は常に非同期であるため、次のように$ .ajaxを使用する必要があります。
var msg = $.ajax({type: "GET", url: "my_script.php", async: false}).responseText;
あなたの答えに感謝して、これを行うためのより良い方法はないと思います。
いつでも使用できます:
var msg;
$.get("my_script.php", function(text) {
msg = text;
});
何らかの理由で応答がテキストである場合、リモートスクリプトがコンテンツタイプをJSONのようなものに変更している可能性があるため、jQueryは出力する前に文字列を解析しようとします。
戻り値は、単にajaxリクエストに使用されるjqXHRオブジェクトです。応答データを取得するには、コールバックを登録する必要があります。
$.get("my_script.php", function(data) {
var msg = data;
alert(msg);
});
応答テキストは、成功コールバックで利用できます。そこで必要なことをしてください。