2016-05-09 8 views
0

Warum in Funktion Login(string email,string password)email ist null und password auch null.AngularJS http erhalten pass nichts zu Controller

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

Warum sind Sie immer noch die [ '.success()' Rückruf] mit (https://docs.angularjs.org/api/ng/service/$http#deprecation -beachten)? – Phil

Antwort

3

Ihr Server die params als Abfrageparameter erwartet, aber Sie als JSON-String senden. Ändern Sie Ihre Linie

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

zu

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

Und entfernen dataType: "json",

Tip: Wie @Phil & @Sateh erwähnt, nicht success oder error Methoden nicht statt then Methode verwenden. So Ihr Code wie folgt aussehen:

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

Sie können '.success()' und '.error()' nicht einfach durch dieselben Callbacks in 'then()' ersetzen. Das Argument zu jedem ist völlig verschieden; es ist das vollständige "Antwort" -Objekt, nicht nur die "Daten" – Phil

+0

Hoppla! Richtig @Phil. Danke für das Update. –

Verwandte Themen