ホームページ ウェブフロントエンド jsチュートリアル jQuery Ajax を使用して、より簡潔な Ajax を実装する Web サービスをリクエストします

jQuery Ajax を使用して、より簡潔な Ajax を実装する Web サービスをリクエストします

Jan 24, 2017 am 09:34 AM

以前は、ajax を実行していたときは、一般的な処理プログラム (.ashx) または Web サービス (.asmx) に依存する必要があり、リクエストごとにそのようなファイルを大量に作成する必要がありました。このような ashx ファイルがあると見栄えがよくありません。

ここで、webMethod メソッドを使用して、Ajax 実装をより簡潔にできます

1 WebMethod を使用したいので、名前空間を参照する必要があります。

System.Web.Services を使用;

ここでは、開発を容易にするために、より便利で管理しやすい新しいページを作成しました。ページの名前に従って、リクエストを分類しましょう
たとえば、バックグラウンドのコードは以下に掲載されています:

/// <summary>
/// 根据任务ID获取任务名称,任务完成状态,任务数量
/// </summary>
/// <param name="id">任务ID</param>
/// <returns></returns>
[WebMethod]
public static string GetMissionInfoById(int id)
{
CommonService commonService = new CommonService();
DataTable table = commonService.GetSysMissionById(id);
    //.....
return "false";
}
ログイン後にコピー

バックグラウンドの WebMethod メソッドは public static メソッドである必要があることに注意してください。このメソッドでセッションを操作したい場合は、メソッドに WeMethod 属性を追加します。

[WebMethod(EnableSession = true)]//或[WebMethod(true)]
public static string GetMissionInfoById(int id)
{
CommonService commonService = new CommonService();
DataTable table = commonService.GetSysMissionById(id);
    //.....
return "false";
}
ログイン後にコピー

2 メソッドに属性を追加する必要があります。バックグラウンドの WebMethod メソッドを呼び出すだけです。ここでは JQuery を使用してみましょう

$.ajax({
type: "POST",
contentType: "application/json",
url: "WebMethodAjax.aspx/GetMissionInfoById",
data: "{id:12}",
dataType: "json",
success: function()
   {
     //请求成功后的回调处理.
   },
   error:function()
{
//请求失败时的回调处理.
}
});
ログイン後にコピー

ここでは JQuery をいくつか説明します。 type: リクエストのタイプ。ここでは post を使用する必要があります。 WebMethod メソッドは、サーバーに情報を送信するときに投稿タイプのリクエストのみを受け入れます

contentType: コンテンツ エンコード タイプ。ここでは application/json を使用する必要があります


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


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


書いたものが文字列でない場合、jqueryは実際に文字列にシリアル化するため、サーバー側で受信したものはjson形式ではなく、たとえパラメーターがない場合でも空にする必要があります。上の例のように、 "{}" として記述されます。多くの人が失敗します、そしてそれが理由です。


dataType: サーバーによって返されたデータ型。 json である必要があります。それ以外は無効です。 Web サービスはデータを json 形式で返すため、その形式は {"d":"....."} になります。成功: リクエストが成功した後のコールバック関数。ここで返されたデータを使用して何でも行うことができます。


一部のパラメーター値が固定されていることがわかります。そのため、再利用性の観点から、jquery の拡張機能を作成し、上記の関数を単純にカプセル化できます。jquery という名前のスクリプト ファイルを作成します。内部に 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 メソッドを呼び出すことができます。 :

$.ajaxWebService("WebMethodAjax.aspx/GetMissionInfoById", "{id:12}", function(result) {//......});
ログイン後にコピー

前にマネージャーのパッケージを見たので、かなり良いと思います

まず、jsファイルを作成します。ファイル名は私が作成します。 CommonAjax.js で 2 つのメソッドを作成しました。次のコードを見てください:

function json2str(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == &#39;object&#39; && s != null) return json2str(s);
return /^(string|number)$/.test(typeof s) ? "&#39;" + s + "&#39;" : s;
}
for (var i in o) arr.push("&#39;" + i + "&#39;:" + fmt(o[i]));
return &#39;{&#39; + arr.join(&#39;,&#39;) + &#39;}&#39;;
}
function Invoke(url, param) {
var result;
$.ajax({
type: "POST",
url: url,
async: false,
data: json2str(param),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
result = msg.d;
},
error: function(r, s, e) {
throw new Error();
}
});
return result;
}
ログイン後にコピー


ただし、このメソッドを使用する場合は、次のことを行う必要があります。これをバックグラウンドの WebMethod メソッドに渡します。パラメータを取得するときに注意すべき点が 1 つあります。Json キーは WebMethod メソッドの仮パラメータと同じでなければなりません。そうでない場合、リクエストは失敗します。

たとえば、バックグラウンド メソッドは次のとおりです:

var result = Invoke("WebMethodAjax.aspx/GetMissionInfoById", { "name": arguments.Value, "id": id });
ログイン後にコピー

2 つのパラメータを渡す必要があります。形式は次のとおりです:

[WebMethod]
public static string GetMissionInfoById(int Id,string name)
{
   //..... 
return "false";
}
ログイン後にコピー

上記は、Jquery Ajax を使用して Web サービスの実装をリクエストするためのエディターの紹介です。より簡潔な Ajax です。ご質問があれば、メッセージを残してください。編集者がすぐに返信します。また、PHP 中国語 Web サイトをサポートしていただきありがとうございます。

より簡潔な Ajax を実現するために jQuery Ajax を使用して Web サービスをリクエストする関連記事の詳細については、PHP 中国語 Web サイトに注目してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

chart.js:パイ、ドーナツ、バブルチャートを始めます chart.js:パイ、ドーナツ、バブルチャートを始めます Mar 15, 2025 am 09:19 AM

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

See all articles