6

jquery ajax に問題があります。私はこのコードを持っています:

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
        status = data;
    },
    async: false
});

if(status == "Password correct")
{
    //do something
}

基本的には、「成功」で返された「データ」をキャプチャしたいと考えています。しかし、if ステートメントが機能する方法を作ることができません。「データ」は文字列ではなかったと思うので、比較できません。

4

5 に答える 5

6

ajax 呼び出しの外側でステータスを定義します。その後、どこからでもアクセスできます。

var status = '';
$.ajax({
    url: '/users/validatepassword/'+current,
    async: false,
    dataType: "json",
    success: function(data){
        status = data;
    },

});

if(status == "Password correct")
{
    //do something
}

users/validatepasswordjson_encode()を使用します

echo json_encode("Password correct");
于 2012-07-27T08:39:23.820 に答える
4

ajax コード内の状態チェック条件を試してください。

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
        status = data;
        if(status == "Password correct")
        {
         //do something
        }
    },
    async: false
});

条件が ajax の外にある場合、ajax が戻る前に実行されます。

于 2012-07-27T08:29:31.063 に答える
2

このように試すことができます。

 var response = $.ajax({
            url: '/users/validatepassword/'+current,
            async: false
        }).responseText;

        if(response == "Password correct")
        {
            //do something
        }
于 2012-07-27T08:33:25.367 に答える
1

外部からではなく、成功関数内でメッセージを処理する必要があることがわかります。

var status = '';
$.ajax({
    url: '/users/validatepassword/'+current,
    async: false,
    success: function(data){
        status = data;
        if(status == "Password correct")
        {
            //do something
        }
    }
});
于 2012-07-27T09:00:53.903 に答える
1

@コメバル:相棒、これはあなたがする必要があることです:

最初に async:false を削除します

$.ajax({
    url: '/users/validatepassword/'+current,
    success: function(data){
       //alert(data); 
       if(data == "Password correct")
        {
                  //do something
        }
    }
});

次に、主要な部分は、ajaxページからのデータが「正しいパスワード」であることを確認することです。そうしないと、「何かをする」ことができません... :)

于 2012-07-27T11:53:11.993 に答える