2016-09-14 1 views
0

ユーザーにログインするための投稿要求を書き込もうとしていますが、何も動作しません。なぜ私は見ることができず、どんな援助も喜んでいます!ありがとう!!角度 - ユーザーにログインするためのPOST要求を送信できず、何が間違っているのかわかりません。

マイコントローラ:

'use strict'; 
app.controller('loginController', function($scope, $state, $http){ 
    $scope.submitLogin=function(email,password) 
     return $http.post('/login', {email:$scope.email, password:$scope.password }) 

//私が持っているので、NG-モデル=「メール」 - 私は実際には$のscope.emailに渡す必要はありませんが、メールのみで渡すことができますか?! HTMLの

  .then(function(success){ 
      if (sucess){ 
      console.log(success) 
      $state.go('stories') 
      } 
      else { 
      console.log('error') 
      } 
      }) 
     .catch(function(err){ 
     console.log("bad") 
     }) 
     }) 

パート:

<div class="form-group"> 
    <label ng-model="email">email</label> 
    <input type="text" class="form-control" required /> 
    </div> 
    <div class="form-group"> 
    <label ng-model="password">password</label> 
    <input type="password" class="form-control" required /> 
    </div> 
    <button type="submit" class="btn btn-block btn-primary" ng-click="submitLogin()">login</button> 
</form> 

州:あなたのそれの問題については

'use strict'; 
app.config(function ($stateProvider) { 
    $stateProvider.state('login', { 
    url: '/login', 
    controller:'loginController', 
    templateUrl: '/browser/app/login/login.html' 
    }); 
}); 
+0

ng-model = "email"を入力する必要があります。 –

+0

入力にng-modelを入力してもまだ動作しない場合は教えてください。 –

+0

ありがとうございます。それでもうまくいかず、この奇妙なエラーが発生します。エラー:[ng:areq] http://errors.angularjs.org/1.3.20/ng/areq?p0=loginController&p1=not%20aNaNunction%2C%20got% 20undefined – javascript2016

答えて

0

は、ヘッダの問題のように見えます。私は、より正確な分析を行うためにコンソールのログ、要求の詳細のような詳細が必要です。それでも、私はそれを解決しようとしています。私はそれが動作すると思います

return $http.post('/login', {email:$scope.email, password:$scope.password},headers: {'Content-Type': 'application/x-www-form-urlencoded'}) 

return $http.post('/login', {email:$scope.email,password:$scope.password}) 

で:あなたはあなたのコードを置き換えることができます。 または 投稿要求の前に以下のコードを使用してdfaultリクエストヘッダーを設定する別の方法があります。

$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded"; 
+0

それはうまく動作しませんが、私も前にヘッダを含んでいませんでした – javascript2016

1

入力タグにng-modelを入れます。

$scope.submitlogin=function(){ 
     data={ 
       email:$scope.email, 
       password:$scope.password 
       } 
      $http.post('/login',data).success(function(){ 

      }); 
    } 

このようにすると効果があるかもしれません。

関連する問題