2017-12-10 9 views
0

辞書アプリを作って、単語が存在するかどうかを確認してみましょう。jQueryのAJAXレスポンスでリクエストデータを取得

<input type="text" id="word"> 
<input type="button" id="button"> 

私が好きなサーバーのいずれか1(有効な単語)または0(無効な単語)で応答する:私は、テキスト入力やボタンを持っています。私のjQueryのスクリプトで

、私は、AJAXリクエストの送信:

$("#button").click(function() { 
    $.ajax({ 
     url: "check.php?word=" + $("#word").val(), 
     method: 'GET', 
     success: function (isValid, textStatus, xhr) { 
      // Can I read the URL from the xhr to know which word was the request for? 
     } 
    }); 
}); 

問題は応答が戻ってきたとき、私はもはやそれがためにある言葉を知っている、ではありませんが。私はサーバのレスポンスにその言葉を付けることができると知っていますが、それが他の方法でできるかどうかは非常に不思議です。

私はこの情報を生のXHRに添付して成功コールバックで読むことができますが、私の質問です:成功コールバックのXHRにはリクエストのURLとデータに関する情報が含まれていますか?ここで

答えて

1

あなたは成功でそれにアクセスするか、そして、(あなたが欲しいものをbeforeSendにjQueryのXHRオブジェクトを変更)、または行わことができます()コールバック

$.ajax({ 
 
    url: 'http://httpbin.org/get', 
 
    data:{foo:'bar'}, 
 
    beforeSend:function(jQxhr){ 
 
    jQxhr.something='another thing'; 
 
    }, 
 
    success:function(res,statusText,jQxhr){ 
 
    console.log('"Something" in success() ', jQxhr.something) 
 
    } 
 
}).then(function(res,statusText,jQxhr){ 
 
    console.log('"Something" in then() ', jQxhr.something) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

ええ、私は私の質問で、私はその可能性を認識していると言いました。それはXHRのURLを読む唯一の方法ですか? jQueryは要求を送信した後、XHRのどこかに格納しませんか? –

+1

私は気づいていません。あなたは手の前に何を送るのかを知っている – charlietfl

+0

確かに私がしますが、それは持っていることがとてもいいです。非同期コードは異なる哲学なので、そのような情報は貴重です。 –

0

は、私がどうなるのかです:

$("#button").click(function() { 
    var word = $("#word").val(); 
    $.ajax({ 
     url: "check.php?word=" + word, 
     method: 'GET', 
     success: function (data) { 
      alert(word); 
     } 
    }); 
}); 

EDIT:ロボRobokコメントから削除し、彼は正しいです。

+0

成功機能は3つの値を返します。そして、ええ、私はそれもこの方法で行うことができますが、何らかの理由で私は可変スコープに依存したくありません。 –

+0

@RoboRobok可変スコープの何が問題なのですか?それはクロージャーにカプセル化されています。 – charlietfl

+0

OK、私はそれを許容しています。しかし、私はこのURLを読むことができますか?これは本当に個人教育の問題です:D –

関連する問題