jQuery/json-Parameter Lesen von POST .NET web service
Ich habe Probleme, herauszufinden, wie zu Lesen, einen json-string aus einem POST aus jQuery(die meisten Artikel, die ich gesehen habe, zeigen, wie Sie senden, json, aber nicht, wie man es von der POST empfangene Nachricht durch die web-services.
Dies ist der code, den ich geschrieben habe, so weit.
Auf der client-Seite:
<input type="text" id="UserNameText" />
<br />
<input type="password" id="PasswordText" />
<br />
<input type="button" id="Login" value="Login" onclick="DoLogin();" />
<script type="text/javascript" language="javascript">
function DoLogin()
{
var un = document.getElementById('UserNameText').value;
var pw = document.getElementById('PasswordText').value;
var info = "{ 'UserName':'" + un + "', 'Password':'" + pw + "'}";
$.ajax(
{
type: "POST",
url: "http://localhost:60876/Login.asmx/LoginSpecial",
dataType: 'json',
data: info,
contentType: "application/json; charset=utf-8",
success: function (msg) { alert(msg.d); },
error: function (msg) { alert(msg.responseText); }
});
}
</script>
auf der server-Seite habe ich dieses:
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
[WebMethod]
public string LoginSpecial()
{
//none of these seem to be working
NameValueCollection parameters = HttpContext.Current.Request.Params;
string p = parameters["QUERY_STRING"] != null ? parameters["QUERY_STRING"].ToString() : String.Empty;
string info = HttpContext.Current.Request["info"] != null ? HttpContext.Current.Request["info"].ToString() : String.Empty;
string data = HttpContext.Current.Request["data"] != null ? HttpContext.Current.Request["data"].ToString() : String.Empty;
//test json string, need to read from the jquery post
string json = "{ 'UserName':'test', 'Password':'test'}";
//the following two lines of code work ok with the test json string above.
JavaScriptSerializer serial = new JavaScriptSerializer();
Credentials credential = (Credentials)serial.Deserialize(json, typeof(Credentials));
return "Some json message here";
}
Habe ich Haltepunkte setzen, und ich bin schlagen die web-service wie erwartet, ich kann einfach nicht herausfinden, wie man den json-string aus den POST message.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, dass Ihre web-service-Methode für die Arbeit mit den eingereichten JSON-Objekt, müssen Sie ändern Sie Ihre Methode Signatur:
Das JSON-Objekt, das Sie liefern, um die
data
Eigenschaft der AJAX-call muss-Eigenschaft Namen, die mit dem parameter-Namen der web-service-Methode Signatur.wenn Sie möchten, senden Sie eine Liste der Parameter, die du Einreichen musst ein array von Objekten und erstellen eines wrappers .NET-Objekt in Ihrem web-service, wie hier beschrieben:
Mit jQuery POST-Formular Daten an eine ASP.NET ASMX-AJAX-Web-Service
Hoffe, das hilft.
Auf der server-Seite die Benutzung der Bibliothek :
Newtonsoft.Json.Linq => heruntergeladen JSON.net von http://james.networking.com/projects/json-net.aspx
Und den code :
Fügen Sie die parameter Ihrer Methode,