ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery.ajaxWebService は Ajax を処理するために WebMethod を要求します

jQuery.ajaxWebService は Ajax を処理するために WebMethod を要求します

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-03 17:38:381574ブラウズ

今回は、WebMethod に Ajax の処理を​​要求する jQuery.ajaxWebService と、WebMethod に Ajax の処理を​​要求する jQuery.ajaxWebService について説明します。注意点 について説明します。

Web フォームでの Ajax プログラムの開発には、一般的な処理プログラム (*.ashx) または Web サービス (*.asmx) の助けが必要であり、各 Ajax リクエストは、このようにして、ファイルが多すぎる場合に作成する必要があります。プロジェクト内で ajax プログラムを実行すると、必然的に .ashx または .asmx の束が生成されますが、プログラム自体には害はありませんが、ファイルの束は常に邪魔に見えます。それでは、これらの .ashx と .asmx を捨てて、ajax プログラムを実行するより簡潔な方法を選択できるでしょうか?

答えは「はい」です。つまり、WebMethod です。 (このメソッドは .net3.5 バージョンでデバッグされており、.net2.0 では問題が発生します)

まず、aspx.cs ファイルにパブリック静的メソッドを作成し、次に WebMethod 属性を追加します。

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

このメソッドでセッションを操作したい場合は、WebMethod の EnableSession プロパティを true に設定する必要があります。つまり:

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

次に、このプログラムにアクセスするための ajax プログラムを作成します。jQuery を使用しましょう。

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

いくつかのパラメータの簡単な説明です。

type: リクエストのタイプ。ここでは post を使用する必要があります。 WebMethod メソッドは投稿タイプのリクエストのみを受け入れます。

contentType: サーバーに情報を送信するときのコンテンツのエンコードタイプ。ここでは application/json を使用する必要があります。

url: リクエストされたサーバーサイドハンドラーへのパス、形式は「ファイル名(サフィックス含む)/メソッド名」

data: パラメータリスト。ここでのパラメータは json 形式の strings である必要があることに注意してください。「{aa:11,bb:22,cc:33, ...}」などの文字列形式であることを忘れないでください。

書いたものが文字列でない場合、jquery は実際にそれを文字列にシリアル化するため、サーバー側で受信されるものは json 形式ではなく、たとえパラメーターがない場合でも空にすることはできません。上の例のように「{}」と書きます。

多くの人が失敗します、そしてこれが理由です。

dataType: サーバーによって返されたデータタイプ。 json である必要があります。それ以外は無効です。 Web サービスはデータを json 形式で返すため、その形式は {"d":"...."} になります。

成功: リクエストが成功した後のコールバック関数。ここで返されたデータを使用して何でも行うことができます。

一部のパラメーター値が固定されていることがわかります。そのため、再利用性の観点から、jquery の拡張機能を作成し、上記の関数を単純にカプセル化できます:

jquery .extend.js というスクリプト ファイルを作成しましょう。内部に ajaxWebService というメソッドを記述します (webmethod は実際には WebService であるため、このメソッドは *.asmx のリクエストにも有効です)。コードは次のとおりです。

/// <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
});
}

さて、リクエストの webmethod メソッドを次のように記述できます。

最後に: プロジェクトに多数の ajax プログラムがある場合 (この状況は可能です。Web サイトを作成しました。それは SNS で、プロセス全体が ajax で、ほとんどすべての操作で ajax が使用されます)、WebMethod メソッドを使用する必要があると思いますか?各 aspx ページは非常に分散しているため、それを保存するための特別なページ (WebMethods.aspx など) を作成できます。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

成功直後に新しいウィンドウを開くように Ajax リクエストを設定する方法

Ajax リクエストの応答中に新しいウィンドウがインターセプトされた場合の対処方法

以上がjQuery.ajaxWebService は Ajax を処理するために WebMethod を要求しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。