PostAjaxService サンプルでは、Windows Communication Foundation (WCF) を使用して、HTTP POST を使用する ASP.NET 非同期 JavaScript および XML (AJAX) サービスを作成する方法を示します。 AJAX サービスは、Web ブラウザー クライアントから基本的な JavaScript コードを使用してアクセスできるサービスです。 このサンプルは 、Basic AJAX サービス のサンプルに基づいています。2 つのサンプルの唯一の違いは、HTTP GET ではなく HTTP POST を使用することです。
Windows Communication Foundation (WCF) での AJAX サポートは、 ScriptManager
コントロールを介して ASP.NET AJAX で使用できるように最適化されています。 ASP.NET AJAX で WCF を使用する例については、 Ajax サンプルを参照してください。
注
このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。
次のサンプルのサービスは、AJAX 固有のコードのない WCF サービスです。
WebInvokeAttribute属性が操作に適用されている場合、またはWebGetAttribute属性が適用されていない場合は、既定の HTTP 動詞 ("POST") が使用されます。 POST 要求は GET 要求よりも構築が困難ですが、キャッシュされません。は、キャッシュが適切でないすべての操作に POST 要求を使用します。
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Basic AJAX サービスのサンプルと同様に、 WebScriptServiceHostFactoryを使用してサービスに AJAX エンドポイントを作成します。
GET 要求とは異なり、ブラウザーから POST サービスを呼び出すことはできません。 たとえば、 http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
に移動するとエラーが発生します。POST サービスでは、URL ではなく、メッセージ本文で n1
パラメーターと n2
パラメーターが送信されることを想定しているためです。
クライアント Web ページ PostAjaxClientPage.aspxには、ユーザーがページ上のいずれかの操作ボタンをクリックするたびにサービスを呼び出す ASP.NET コードが含まれています。 このサービスは、 基本的な AJAX サービス サンプルと同じ方法で GET 要求で応答します。
サンプルを設定、ビルド、実行するには
Windows Communication Foundation サンプルのセットアップ手順One-Time セットアップ手順を実行していることを確認します。
「Windows Communication Foundation サンプルのビルド」の説明に従って、PostAjaxService.slnソリューションをビルドします。
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
に移動します (プロジェクト ディレクトリからブラウザーでPostAjaxClientPage.aspxを開かないでください)。