Heim  >  Artikel  >  Web-Frontend  >  jQuery.ajaxWebService fordert WebMethod an, Ajax zu verarbeiten

jQuery.ajaxWebService fordert WebMethod an, Ajax zu verarbeiten

php中世界最好的语言
php中世界最好的语言Original
2018-04-03 17:38:381574Durchsuche

Dieses Mal werde ich Ihnen zeigen, welche Vorsichtsmaßnahmen für jQuery.ajaxWebService gelten, um WebMethod für die Verarbeitung von Ajax anzufordern, und für jQuery.ajaxWebService, um WebMethod für die Verarbeitung von Ajax anzufordern. Hier sind die praktischen Fälle sehen.

Um ein Ajax-Programm unter WebForm zu entwickeln, müssen Sie ein allgemeines Verarbeitungsprogramm (*.ashx) oder einen Webdienst (*.asmx) verwenden und jede Ajax-Anfrage muss eine solche Datei erstellen, also, falls vorhanden Befinden sich zu viele Ajax-Programme in einem Projekt, wird unweigerlich eine Reihe von .ashx- oder .asmx-Dateien generiert. Obwohl dies für das Programm selbst nicht schädlich ist, sieht die Reihe von Dateien immer schädlich aus. Können wir diese .ashx und .asmx also wegwerfen und einen prägnanteren Weg wählen, das Ajax-Programm auszuführen?

Die Antwort ist ja, das heißt: WebMethod. (Diese Methode wurde unter der .net3.5-Version debuggt und weist unter .net2.0 Probleme auf)

Erstellen Sie zunächst eine öffentliche statische Methode in der Datei aspx.cs und fügen Sie dann das WebMethod-Attribut hinzu.

[WebMethod]
public static string GetUserName() 
{
//......
}

Wenn Sie die Sitzung in dieser Methode betreiben möchten, müssen Sie das EnableSession-Attribut von WebMethod auf true setzen. Das heißt:

[WebMethod(EnableSession = true)]//或[WebMethod(true)]
public static string GetUserName() 
{
//......
}

Dann schreiben wir ein Ajax-Programm, um auf dieses Programm zuzugreifen. Verwenden wir jQuery.

$.ajax({
type: "POST",
contentType: "application/json",
url: "WebForm2.aspx/GetUserName",
data: "{}",
dataType: "json",
success: function(){.......}
});

Hier ist eine kurze Erklärung einiger Parameter,

Typ: Der Typ der Anfrage, hier muss der Beitrag verwendet werden. Die WebMethod-Methode akzeptiert nur Post-Typ-Anfragen.

ContentType: Inhaltskodierungstyp beim Senden von Informationen an den Server. Wir müssen hier application/json verwenden.

URL: Der Pfad zum angeforderten serverseitigen Handler im Format „Dateiname (einschließlich Suffix)/Methodenname“

Daten: Parameterliste. Beachten Sie, dass die Parameter hier Strings im JSON-Format sein müssen. Denken Sie daran, im String-Format zu sein, wie zum Beispiel: „{aa:11,bb:22,cc:33, ...}“. Wenn

das, was Sie schreiben, keine Zeichenfolge ist, serialisiert JQuery es tatsächlich in eine Zeichenfolge, sodass das, was auf der Serverseite empfangen wird, nicht im JSON-Format vorliegt und nicht leer sein kann muss wie im obigen Beispiel als „{}“ geschrieben werden.

Viele Menschen scheitern und das ist der Grund.

dataType: Datentyp , der vom Server zurückgegeben wird. Es muss JSON sein, alles andere ist ungültig. Da der Webservice Daten im JSON-Format zurückgibt, lautet seine Form: {"d":"....."}.

Erfolg: Rückruffunktion nach erfolgreicher Anfrage. Hier können Sie mit den zurückgegebenen Daten machen, was Sie wollen.

Wir können sehen, dass einige der Parameterwerte festgelegt sind. Aus Sicht der Wiederverwendbarkeit können wir daher eine Erweiterung für jquery erstellen und eine einfache Kapselung der obigen Funktion erstellen:

Wir erstellen eine Skriptdatei namens jquery.extend.js. Schreiben Sie darin eine Methode namens ajaxWebService (da webmethod eigentlich WebService ist, ist diese Methode also auch zum Anfordern von *.asmx gültig. Der Code lautet wie folgt:

/// <summary>
/// jQuery原型扩展,重新封装Ajax请求WebServeice
/// </summary>
/// <param name="url" type="String">
/// 处理请求的地址
///</param>
/// <param name="dataMap" type="String">
/// 参数,json格式的字符串
///</param>
/// <param name="fnSuccess" type="Function">
/// 请求成功后的回调函数
///</param>
$.ajaxWebService = function(url, dataMap, fnSuccess) {
$.ajax({
type: "POST",
contentType: "application/json",
url: url,
data: dataMap,
dataType: "json",
success: fnSuccess
});
}

Okay, wir können also die webmethod-Methode anfordern). Es ist so geschrieben:

$.ajaxWebService("WebForm2.aspx/GetUserName", "{}", function(result) {......});

Abschließend: Wenn Ihr Projekt viele Ajax-Programme enthält (diese Situation ist möglich, ich habe eine Website erstellt, es ist ein SNS, der gesamte Prozess ist Ajax). , fast jede Operation (mit Ajax). Wenn Sie das Gefühl haben, dass das Schreiben von WebMethod-Methoden auf jeder ASPX-Seite sehr fragmentiert ist, können Sie eine spezielle Seite (z. B. WebMethods.aspx) zum Speichern erstellen.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

So richten Sie eine Ajax-Anfrage ein, um sofort nach Erfolg ein neues Fenster zu öffnen

Öffnen Sie eine neues Fenster in der Ajax-Anfrageantwort Wie man mit Abfangen umgeht

Das obige ist der detaillierte Inhalt vonjQuery.ajaxWebService fordert WebMethod an, Ajax zu verarbeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn