2017-11-24 14 views
0

私は$.ajax jQueryのリクエストでfake apiにデータを投稿している単純なログインフォームを作成しました。AJAXが間違ったパスワードのログイン応答

私は2つの質問持っている - 私が間違っ詳細は

にログインしているときに私はエラー応答を表示することができますどのように私のフォーム

  • に正しいログイン情報のペアを設定するにはどうすればよい

    1. $("#my_form").submit(function (event) { 
       
          event.preventDefault(); //prevent default action 
       
          var post_url = $(this).attr("action"); //get form action url 
       
          var request_method = $(this).attr("method"); //get form GET/POST method 
       
          var form_data = $(this).serialize(); //Encode form elements for submission 
       
      
       
          $.ajax({ 
       
           url: post_url, 
       
           type: request_method, 
       
           data: { 
       
            username: "jordan", 
       
            password: ["miguel"] 
       
           }, 
       
          }) 
       
          .done(function (response) { 
       
           $("#server-results").html(response); 
       
          }); 
       
      });
      section class="form"> 
       
           <h2>Login To Your Account</h2> 
       
           <p class="valid">Valid. Please wait a moment.</p> 
       
           <p class="error">Error. Please enter correct Username &amp; password.</p> 
       
           <form action="https://reqres.in/api/users" class="loginbox" method="post" id="my_login"> 
       
            <input placeholder="Username" type="text" id="username"></input> 
       
            <input placeholder="Password" type="password" id="password"></input> 
       
            <button id="submit" value="Submit Form">Login</button> 
       
           <div id="server-results"></div> 
       
           </form> 
       
          </section>

  • +0

    のアクションでhttps://reqres.in/api/loginを入れ、 'アクションを置く=「https://reqres.in/api/login」' '/ api/users'の代わりに、' username'を 'email'に置き換え、代わりに電子メールを入れて、パスワードから' [] 'を削除してください。 – Taki

    +0

    エラーを表示するには、 '.fail(function(err){console.log(err);})'直後.done() ' – Taki

    答えて

    0

    あなたがすべきR emoveあなたはドキュメント

    { 
        "email": "[email protected]", 
        "password": "password" 
    } 
    

    に応じて、次の形式に従う必要がありますが、これらの資格情報のあなたはそれが意志成功登録上の最初の

    $.ajax({ 
        url: "https://reqres.in/api/register", 
        type: "POST", 
        data: { 
         email: "[email protected]", 
         password: "password" 
        }, 
        success: function(response){ 
         console.log(response); 
        } 
    }); 
    

    偽のユーザーを作成する必要がありますログイン成功のためとして、角括弧は、

    あなたにログインするために、その後 201 Response

    { 
        "token": "QpwL5tke4Pnpja7X" 
    } 
    

    であなたは以下のようにトークンができ返しますエラーがなかった場合は

    $.ajax({ 
         url: "https://reqres.in/api/login", 
         type: "POST", 
         data: { 
          email: "[email protected]", 
          password: "password" 
         }, 
         success: function(response){ 
          console.log(response); 
         } 
        }); 
    

    APIを使用すると、response.tokenのためにあなたの成功の機能でチェックすることができ、次のJSON

    { 
        "token": "QpwL5tke4Pnpja7X" 
    } 
    

    200 responseを返します。

    とAPIは、以下のJSON

    { 
        "error": "Missing password" 
    } 
    

    400 responseを返すログイン試行中にエラーがあったかどうかを検出するので、それはあなたがエラーはそれが役に立てば幸い表示するためにerror:function(response){}

    を使用できることを意味します。

    +1

    これは意味がありますが、これを私のコードに追加しました。構文エラーがあります。最終的なjQueryコードをまとめて投稿する方が良いでしょう。 –

    +0

    ええ、私たちはそこに間違っているものを整理することができます。 –

    0
    $.ajax({ 
         url: post_url, 
         type: request_method, 
         data: { 
          email: "[email protected]", // replace username with email 
          password: "miguel" // remove the [] 
         }, 
        }) 
        .done(function (response) { // status code 200 
         if(response.error) // handle wrong email or password (login errors) 
          console.log(response.error); 
         else 
          $("#server-results").html(response); 
        }) 
        .fail(function(err){ // to handle request errors (404, 400, 500 ...) 
         console.log(err); 
        }); 
    

    、あなたが偽のAPIにログインをしようとしている場合、あなたのform

    +0

    これは機能しません。間違ったデータでログインするべきではありません。 –

    +0

    は動作していません。データのどの部分が間違っていますか? – Taki

    関連する問題