2016-04-06 12 views
3

私は現在、nodejsとangularjsを統合しています。私はbrowser.http 400の悪いrequset.Iでエラーが発生しました。フロントエンドエラーかバックエンドエラーか、解決策が必要ですか?angularjsのPOST 400の不正なリクエスト

register.htmlウィキペディアのList of HTTP status codesによる

 <form class="register-form" name="myRegisterForm" ng-hide="login" ng-submit="register(user)" novalidate> 
      <input type="text" placeholder="Name" ng-model="user.name" name="username" minlength="5" maxlength="25"/> 
     <span style="color:red" class="error" ng-show="myRegisterForm.username.$error.minlength">Given Name should be above 5 letters.</span><br/> 
     <input type="text" placeholder="Phone number" ng-model="user.phone" name="phonenum" 
       minlength="10" maxlength="10" ng-pattern="/^[0-9-]*$/" required/> 
     <span style="color:red" ng-style="{'padding-top':'2px'}" ng-show="myRegisterForm.phonenum.$error.pattern">Please enter numbers only.</span> 
     <span style="color:red" class="error" ng-show="myRegisterForm.phonenum.$error.minlength">Phone number must be 10 digits .</span><br/> 
     <input type="text" name=email placeholder="Email address" ng-model="user.email" 
       ng-pattern="/^[a-z]+[a-z0-9._][email protected][a-z]+\.[a-z.]{2,5}$/" required/> 
     <span style="color:red" ng-style="{'padding-top':'2px'}" ng-show="myRegisterForm.email.$error.pattern">Please enter correct mail id</span><br/> 
     <input type="password" placeholder="Password" ng-model="user.password" minlength="8" maxlength="16"/> 
     <input type="password" placeholder="Confirm password" ng-model="user.cpassword" minlength="8" maxlength="16"/> 
     <span style="color:red" ng-style="{'padding-top':'2px'}" ng-show="user.password !== user.cpassword">Password is not match</span> 
     <textarea placeholder="Address" ng-model="user.address"></textarea> 
     <input type="submit" value="SIGN UP" /> 
     <p class="message">Already registered? <p></form> 

register.js

$scope.register = function (user) { 
    var data = { 
     "user" : { 
      "name": user.name, 
      "email": user.email, 
      "phone": "+91"+ user.phone, 
      "password": user.password, 
      "address": user.address 

     } 

    }; 
    $http({ 
     method: 'POST', 
     url: '', 
     headers: {'Content-Type': 'application/json'}, 
     data: data 
    }).then(function successCallback(response) { 
     if (response.data) { 
      sharedServices.set(response.data); 
      $location.path('/login'); 
     } 
     console.log(response); 
    }, function errorCallback(response) { 
     if (response) { 
      $scope.message = response.data; 
     } 
    }); 
}; 
+0

data: {} 

を変更することで、この問題を解決し、あなたは私達がで行くことは何もないコードの男を投稿しなきゃ。 Welcome to SO – JordanHendrix

+0

要求フォーマットが無効であるため、400 Bad Requestがサーバーから送信されます。 –

+0

あなたは空白のURLを持っています、それは間違いありませんか? –

答えて

4

400不正な要求

サーバは、 クライアントエラー(たとえば、不正なリクエスト構文、無効なリクエスト メッセージフレーミング、または不正なリクエストルーティングなど)のためにリクエストを処理できない、または処理しません。[36]素人の面では

は、dataは無効です:

var data = { 
    "user" : { 
    "name": user.name, 
    "email": user.email, 
    "phone": "+91"+ user.phone, 
    "password": user.password, 
    "address": user.address 
    } 
}; 

サーバがdataが無効であることを検出dataを処理しようと400を送信します。ここで

は、いくつかの可能原因です:

  • dataが必要な値
  • data.phoneが欠落している無効
  • data.addressで無効
  • data.passwordある多分それはあまりにも弱いです(無効です... ?)
  • 重要なリクエストheaderはmissiですng

dataの形式がサーバーの期待するものと一致することを確認する必要があります。

また、レスポンス本文に、より具体的なエラーが含まれているかどうかを確認する必要があります。

+0

私は名前、電子メール、電話、アドレスの正確な出力を得たので、データは有効です。エラーのパスワードフィールドがありません。 – BalaDev

+0

@BalaDev私はいくつかの詳細で私の答えを更新しました。私はそれが助けて欲しい –

+0

はい。今私は答えを得た。その完璧に動作します。@ alex bookerさん、ありがとうございます。 – BalaDev

0

はどういうわけか、私は

params: {} 
関連する問題