2016-12-11 13 views
0
$.get('/users/test/' + username, { 
    statusCode: { 
     409:() => { 
     valid = false; 
     alert(username + ' is unavailable'); 
     }, 
     200:() => { 
     valid = true; 
     } 
    } 
    }); 

を振る舞う私が表示されるはずです。jqueryのアヤックスからstatusCodeは私のサーバー上で予期せず

"GET /users/test/asdf HTTP/1.0" 200 0

をしかし、その代わりに、私はjqueryのは、いくつかの愚かなクエリ文字列を追加することの喜びを取る参照してください。

"GET /users/test/asdf?statusCode%5B200%5D=&statusCode%5B409%5D= HTTP/1.0" 200 0

Jqueryが200を返していますが、409のコードがまだ実行されています。どうしたの?

答えて

1

ステータスコードベースの応答ハンドラと思われるものを含む第2引数にオブジェクトを渡します。

jQueryはそうしていません。 $.get()の2番目の引数は、サーバーにデータを渡すために使用されるオプションのdata引数です。 jQueryはこのデータをシリアライズし、getリクエストにクエリ文字列として含めます。この平均値を行いだから何

$.get({ 
    url: '/users/test/' + username, 
    statusCode: { 
     409:() => { 
     valid = false; 
     alert(username + ' is unavailable'); 
     }, 
     200:() => { 
     valid = true; 
     } 
    } 
    }); 
+0

:https://api.jquery.com/jquery.get/


あなたはおそらく、URLを含む構成オブジェクトを受け取り、その関数の他のフォームを使用していました#jQuery-get-settings?明らかに、私はそれを試したときに動作していないようですが、私が唯一のパラメータとしてオブジェクトを渡すと動作するはずですか? – dtgq

+0

@DavidTanそれは構成オブジェクトだけをとる別の呼び出しです。 urlを構成オブジェクトの一部としてではなく引数として含めることで、jQeuryに意図したものとは異なる呼び出しを使用するように指示しました。これを考慮に入れて私の答えを更新しました。 – Ouroborus

+0

さて、私は気になるでしょう...実際には私が試した最初のことですが、全く動作していないので、URLをオブジェクトの外に移動しようとしましたが、部分的に動作しているようでした。私は最初の試行でタイプミスや何かあったのでしょうか?助けてくれてありがとう。 – dtgq

関連する問題