HTTP POST を使用する AJAX サービス
このサンプルでは、Windows Communication Foundation (WCF) を使用して、HTTP POST を使用する ASP.NET Asynchronous JavaScript and XML (AJAX) サービスを作成する方法を示します。AJAX サービスには、Web ブラウザ クライアントから基本的な JavaScript コードを使用してアクセスできます。このサンプルは、基本的な AJAX サービス のサンプルに基づいていますが、HTTP GET の代わりに HTTP POST を使用する点が異なります。
Windows Communication Foundation (WCF) での AJAX サポートは、ScriptManager コントロールを介して ASP.NET AJAX と共に使用するために最適化されています。ASP.NET AJAX と共に WCF を使用する例については、「AJAX のサンプル」を参照してください。
メモ : |
---|
このサンプルをビルドして実行するには、.NET Framework Version 3.5 をインストールする必要があります。Visual Studio 2008 では、プロジェクト ファイルとソリューション ファイルを開く必要があります。 |
メモ : |
---|
このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。 |
次に示すサンプルのサービスは、AJAX 固有のコードを持たない WCF サービスです。
WebInvokeAttribute 属性が操作に適用されているか、または WebGetAttribute 属性が適用されていない場合、既定の HTTP 動詞 (“POST”) が使用されます。POST 要求は、GET 要求よりも作成が困難ですが、キャッシュされません。キャッシュが不適切な操作に対しては、POST 要求を使用します。
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
[OperationContract]
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
基本的な AJAX サービス サンプルと同様に、<webHttpBinding> 標準バインディングとサービス構成ファイル内の <enableWebScript> 動作を使用して、サービスに AJAX エンドポイントを作成します。
GET 要求とは異なり、POST サービスはブラウザから呼び出すことができません。たとえば、https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 に移動すると、エラーになります。これは、URL ではなく、JSON 形式で n1
パラメータと n2
パラメータがメッセージ本文で送信されることを POST サービスが想定しているためです。
クライアントの Web ページの PostAjaxClientPage.aspx には、ユーザーがページ上のいずれかの操作ボタンをクリックするとサービスを呼び出す ASP.NET コードが含まれています。サービスは、GET 要求で、基本的な AJAX サービス のサンプルと同じように応答します。
サンプルを設定、ビルド、および実行するには
「Windows Communication Foundation サンプルの 1 回限りのセットアップの手順」のセットアップ手順を実行します。
「Windows Communication Foundation サンプルのビルド」の説明に従って、ソリューション PostAjaxService.sln をビルドします。
https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx に移動します (プロジェクト ディレクトリからブラウザで PostAjaxClientPage.aspx を開かないでください)。
Copyright © 2007 by Microsoft Corporation.All rights reserved.