Ajax與WCF互動-WCF之美

來源:互聯網
上載者:User

上面一篇博文<<Ajax訪問Xml Web Service的安全問題以及解決方案>>中談及xml web service與wcf新老架構對於ajax安全性的問題,得出了結論,但沒有具體驗證,本文正是為了驗證上文中關於新架構MEX結點與業務終結點分離更有利於服務安全的結論,並稍帶著講述如何在vs2008中用ajax與wcf進行互動.

第一步: 在vs2008中建立一個網站.

在vs2008中,建立網站時候如果選擇.Net Framework 3.5的模板,那麼建立好的項目中web.config中自動帶有ajax的配置.這個在上文中說過.而且在右面的工具箱中也有Ajax控制項欄

但如果建立的.net framework 2.0的網站預設情況下web.config中是不支援ajax的.但也有解決辦法,下文再說.

第二步: 建立一個可用於ajax互動的wcf服務AjaxWcfService.svc,方式如下:

修改模板產生的服務代碼如下:

[OperationContract] 

public int IntAdd(int a,int b) 



// 在此處添加操作實現 

return a+b; 


在瀏覽器中瀏覽AjaxWcfService.svc,會出現下面的效果:

 

第三步: 好,下面一個步驟和原來的xml web service與ajax互動使用方法不太一致.步驟如下 :

訪問第二步開啟的AjaxWcfService.svc網址後面添加/js的網址,:

哈哈,這樣便能下載到用於訪問wcf服務的js代理.將該檔案儲存起來,我這裡命名為AjaxWcfScript.js,然後將其添加到項目的根目錄中(其他位置也可,位置自選) .

第四步:到第三步結束,與WCF相關的操作基本已經完成,下面進行的是ajax的開發.

在default.aspx中添加scriptmanager從右面的工具箱中拖一個ScriptManager的控制項到default.aspx中,然後添加ScriptReference,完成後的ScriptManager代碼如下:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 

<Scripts> 

<asp:ScriptReference Path="~/AjaxWcfScript.js" /> 

</Scripts> 

</asp:ScriptManager> 

第五步: 第四步基本實現頁面default.aspx對scriptmanager的支援,並且添加了訪問WCF服務AjaxWcfService.svc的配置,下面的過程就非常easy了,在default.aspx中添加如下的element  

<h2>ajax與wcf互動樣本</h2> 

<p>a:<input id="txtA" type="text" /></p> 

<p>b:<input id="txtB" type="text" /></p> 

<input id="Button1" type="button" value="提交" /> 

然後在<head></head>中添加如下的指令碼script  

<script type="text/javascript"> 

function intAdd() 



var a = $get("txtA").value; 

var b = $get("txtB").value; 

AjaxWcfService.IntAdd(a,b,onSuccess,onFailed); 



function onSuccess(res) 



alert(res); 



function onFailed(res) 



alert(res); 



</script> 

然後將Button1的onclick指定為intAdd

<input id="Button1" type="button" value="提交" onclick="intAdd()"/>

第六步: 好,現在萬事俱備,只欠測試了,在瀏覽器中瀏覽default.aspx,隨便在輸入框中輸入連個數字,點擊提交,結果如下:

好,一個perfect的ajax與wcf到此結束.

國際慣例,最後呈上範例程式碼:
/Files/jillzhang/AjaxWcf.rar

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.