PostAjaxService 範例示範如何使用 Windows Communication Foundation (WCF) 來建立使用 HTTP POST 的異步 JavaScript 和 XML (AJAX) 服務 ASP.NET。 AJAX 服務是您可以從網頁瀏覽器用戶端使用基本 JavaScript 程式代碼存取的服務。 此範例是以 基本 AJAX 服務 範例為基礎;這兩個範例的唯一差異是使用 HTTP POST,而不是 HTTP GET。
Windows Communication Foundation (WCF) 中的 AJAX 支援已優化,可透過 ScriptManager 控件與 ASP.NET AJAX 搭配使用。 如需使用 WCF 和 ASP.NET AJAX 的範例,請參閱 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…
}
使用 WebScriptServiceHostFactory在服務上建立 AJAX 端點,就像在基本 AJAX 服務範例中一樣。
不同於 GET 要求,您無法從瀏覽器叫用 POST 服務。 例如,流覽至 http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 會產生錯誤,因為 POST 服務預期 n1 和 n2 參數會以 JSON 格式在訊息本文中傳送,而不是在 URL 中傳送。
每當使用者按下頁面上的其中一個作業按鈕時,用戶端網頁PostAjaxClientPage.aspx包含 ASP.NET 程式代碼來叫用服務。 服務會以與基本 AJAX 服務範例中使用 GET 要求的方式相同的方式回應。
要設定、建置和執行範例,請執行以下步驟:
請確保您遵循 One-Time Windows Communication Foundation 範例的設定程序執行相關指示。
如 建置 Windows Communication Foundation 範例中所述,建置解決方案PostAjaxService.sln。
流覽至
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx(不要從專案目錄在瀏覽器中開啟PostAjaxClientPage.aspx)。