ホームページ > 記事 > ウェブフロントエンド > jQuery.ajaxWebService は Ajax を処理するために WebMethod を要求します
今回は、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 サイトの他の関連記事を参照してください。