0

JSON文字列の電子メール部分にアクセスしようとしています

{"email":"有効なメールアドレスを入力してください","pass":"パスワードを入力してください"}"

そのような関数へのパス

postActor: function(){
    var self = checkLogin;
        $.ajax({
        data: self.config.form.serialize(),
            success: function(results) {
            if(results){
                        console.log({results: email});      
            alert('this should worlk');
                } else {
                                   alert('this isn't working');
                }
            }
        });
    },

それは私を夢中にさせます。誰かが私が間違っていることを指摘できます。ありがとう

4

3 に答える 3

1

{results: email}オブジェクトを作成するためのオブジェクト リテラル構文になります。results.emailまたは のいずれかを使用する必要がありますresults['email']

編集: @TravisJ の発言に基づいて、結果を解析する必要がある場合があります。可能性は低いですが、次のオプションがあります。

  1. JSON が出力されるときにヘッダーapplication/jsonとして を設定するContent-type
  2. 引数dataType: jsonの 1 つとして使用する$.ajax
  3. 文字列に$.parseJSONorを使用します。JSON.parseresults
于 2013-03-13T00:21:40.560 に答える
0

ドット表記を使用してプロパティにアクセスし、results.email

postActor: function(){
    var self = checkLogin;
        $.ajax({
        data: self.config.form.serialize(),
            success: function(results) {
                if(results){
                    console.log(results.email);      
                    alert('this should worlk');
                } else {
                    alert('this isn't working');
                }
            }
        });
    },
于 2013-03-13T00:21:52.200 に答える
0

結果変数が json でエンコードされた文字列であると仮定すると、それを json として解析する必要があります。JSON.parse(string) を使用するか、dataType json が指定されている場合は、オブジェクト アクセス表記を使用します。

results.email

また

results['email'].

JSON はJava s cript Object Notationです。詳細については、http://www.json.org/ を参照してください。

それとは別に、次の行で引用符をエスケープするのを忘れていました。

alert('this isn't working');
           //  ^ this should be escaped.

これにより、関数の残りの部分が壊れる可能性があります。

于 2013-03-13T00:21:57.747 に答える