使用 HTTP POST 的 AJAX 服務

這個範例示範如何使用 Windows Communication Foundation (WCF) 建立會使用 HTTP POST 的 ASP.NET Asynchronous JavaScript 與 XML (AJAX) 服務。AJAX 是可從 Web 瀏覽器用戶端使用基本 JavaScript 程式碼存取的一種服務。這個範例的建置基礎是基本 AJAX 服務範例;這兩個範例之間的唯一不同在於使用 HTTP POST 而不是 HTTP GET。

Windows Communication Foundation (WCF) 中的 AJAX 支援已針對透過 ScriptManager 控制項來搭配 ASP.NET AJAX 使用完成最佳化。如需搭配 ASP.NET AJAX 使用 WCF 的範例,請參閱 AJAX 範例

Bb410768.note(zh-tw,VS.90).gif注意:
要建置和執行這個範例,必須安裝 .NET Framework version 3.5。要開啟專案和方案檔,必須要有 Visual Studio 2008。

Bb410768.note(zh-tw,VS.90).gif注意:
此範例的安裝程序與建置指示位於本主題的結尾。

下列範例中的服務是沒有使用 AJAX 特定程式碼的 WCF 服務。

如果作業是套用 WebInvokeAttribute 屬性,或是未套用 WebGetAttribute 屬性,則會使用預設 HTTP 動詞 (“POST”)。POST 要求比 GET 要求更難建構,不過 POST 要求不會被快取;請在不適合快取的所有作業上使用 POST 要求。

[ServiceContract(Namespace = "PostAjaxService")]
    public interface ICalculator
    {
        [OperationContract]
        [WebInvoke]
        double Add(double n1, double n2);
        //Other operations omitted…
    }

在服務組態檔中使用 <webHttpBinding> 標準繫結與 <enableWebScript> 行為建立服務的 AJAX 端點,如同基本 AJAX 服務範例中所示。

不同於 GET 要求,您無法從瀏覽器叫用 POST 服務。例如,瀏覽到 https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 會發生錯誤,因為 POST 服務預期 n1n2 參數是以訊息本文方式傳送,也就是使用 JSON 格式,而不是使用 URL。

用戶端網頁 PostAjaxClientPage.aspx 包含 ASP.NET 程式碼,此程式碼會在使用者每次按下網頁上其中一個作業按鈕時叫用此服務。服務的回應方式會與基本 AJAX 服務範例中相同,都是使用 GET 要求。

若要設定、建置及執行範例

  1. 請確定您已執行安裝指示 Windows Communication Foundation 範例的單次安裝程序

  2. 使用建置 Windows Communication Foundation 範例中描述的方式建置方案 PostAjaxService.sln。

  3. 瀏覽到 https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (不要使用瀏覽器從專案目錄開啟 PostAjaxClientPage.aspx)。

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.