Webサービスインタフェースを呼び出すクロスドメインAJAXリクエスト

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は、その要求が間違っていることを得ます。

おすすめ

転載: www.cnblogs.com/superfeeling/p/11600854.html