2016-05-09 8 views
0

なぜ機能がLogin(string email,string password)emailであり、passwordもnullです。AngularJS httpはコントローラーに何も渡さない

はJavaScript:

$http({ 
     method: "GET", 
     url: '/Home/Login/', 
     dataType: "json", 
     params: JSON.stringify({ email: 'Test', password: 'Test' }) 
}).success(function (data, status, headers, config) { 
     alert(data); 
}); 

にHomeController:

public JsonResult Login(string email,string password) 
    { 
     return Json("working",JsonRequestBehavior.AllowGet); 
    } 
+3

は、なぜあなたはまだ(https://docs.angularjs.org/api/ng/service/$http#deprecation [ '.success()'コールバック]を使用しています-通知)? – Phil

答えて

3

サーバーにはクエリパラメータとしてのparamsを期待していますが、JSON文字列として送信されます。代わりにthenメソッドを使用しsuccesserrorメソッドを使用していない、と同様@Phil & @Satehが述べた:

params: { email: 'Test', password: 'Test' } 

にあなたのライン

params: JSON.stringify({ email: 'Test', password: 'Test' }) 

を変更し、dataType: "json",

ヒントを削除します。だからあなたのコードは次のようになります。

$http({ 
     method: "GET", 
     url: '/Home/Login/', 
     params: { email: 'Test', password: 'Test' } 
}).then(function(response) { 
     alert(response.data); 
}, function() { 
     console.log("Error occured"); 
}); 
+0

'.success()'と '.error()'を 'then()'の同じコールバックに置き換えることはできません。それぞれの議論は全く異なる。 'data'だけでなく、完全な' response'オブジェクトです – Phil

+0

おっと!右@Phil。更新していただきありがとうございます。 –

関連する問題