1.WebService書き込みインターフェース
手順:新しいWebプロジェクトを作成します。=「= Webサービスを追加」のインターフェイスメソッドを記述=「放し(ローカルテストが直接アップこのWebサービスを入れてランニングすることができます)。
キー外部Ajaxの呼び出しを行う方法。
まず、(直接、[OK]を貼り付けることにより、テスト済み)第三者がインターフェイスメソッドを呼び出すことができるように、Webサービスプロジェクト構成ファイル(web.config)赤い部分が構成されている必要があり、構成、Baiduのを理解することはできません。
< 設定> < のsystem.web > < Webサービス> < プロトコル> < 追加名= "HttpSoap" /> < 追加名= "HttpPost" /> < 追加名= "HTTPGET" /> < 追加名= "ドキュメント" /> </ プロトコル> </ Webサービス> < コンパイル、デバッグ= "true"をtargetFramework = "4.0" /> </ のsystem.web > < system.webServer > < httpProtocol > < customHeaders > < 追加名= "アクセス制御-許可-メソッド" 値= "OPTIONS、POST、GET" /> < 追加名= "アクセス制御-許可-ヘッダ" 値= "X-要求-で、コンテンツタイプ" /> < 追加名= "アクセス制御-許可-起源" 値= "*" /> </ customHeaders > </ httpProtocol > </ システム。webServer > </ 設定>
図2は、第二に、ここでのWebServiceのコードセクションを掲示し、Ajax呼び出しのために、ここで私は、人のカスタムコレクションGetPersonList()に戻ります。
あなたがここに公開した後、(1)リリース[WebServiceの(名前空間=「http://192.168.1.90:5555/")]//カスタムドメインアドレスを設定する必要があります。もちろん、あなたがローカルホストのローカルテストを使用するか、デフォルトができ使用することができます。
(2)[System.Web.Script.Services.ScriptService]ノートを解放します。
これらの2つのステップは、アクセスhttp://192.168.1.90:5555/XXX.asmxアドレス、インターフェイスリリースWebサービスを記述しません。
システムが使用して; System.Collections.Genericを使用して、 System.Linqのを使用して、 System.Webのを使用して、 System.Web.Servicesを使用して、 MyWebService名前空間 { /// < 概要> MyWebServiceの///概要 /// </ 要約> [Webサービス(名前空間= "47737 / HTTP:// localhostを")] [WebServiceBinding(conformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(偽)] スクリプトからASP.NET AJAXの使用を可能にする//このWebサービスを呼び出して、次の行のコメントを解除。 【System.Web.Script.Services.ScriptService] publicクラスMyWebService:System.Web.Services.WebService { [WebMethod属性] パブリック文字列のHelloWorld() { リターンの"Hello World"; } [WebMethod属性] パブリックint型の追加(INT NUM1、INT NUM2) { 戻りNUM1 + NUM2。 } } }
3.サードパーティAjax呼び出し。
$アヤックス({
URL: "のhttp:// localhostを:47737 / MyWebService.asmx /追加"、
種類: "ポスト"、
データ: "{ 'NUM1':2 'NUM2':5}"、
contentTypeの: "アプリケーション/ JSON」、
データ型: "JSON"、
成功:機能(データ){
警告(data.d);
}、
エラー:関数(){
警告( "!发送AJAX请求失败");
}
});
追伸:
1)AJAXリクエストヘッダは、コンテンツタイプを介して提供される「アプリケーション/ JSONは、 」 文字列戻りJSONように表示され、このエラーWebサービスに対応するGET要求は、コンテンツタイプGET / POSTリクエストを除去した後、正確に行うことができますそれは、XML、JSONないが返されます。
「アプリケーション/ JSON:取得要求はWebサービスでなければならない場合2)、ScriptMethodは真の属性UseHttpGet =を指定する必要があり、web.configファイルが設定されます/アクセスのためのポストは唯一の代わりに、コンテンツ・タイプ上に設けられたXMLを返す必要があります 」 戻りますJSONは、その要求が間違っていることを得ます。