Ajax與WCF交互-WCF之美
上面一篇博文<<Ajax訪問Xml Web Service的安全問題以及解決方案>>中談及xml web service與wcf新老架構(gòu)對于ajax安全性的問題,得出了結(jié)論,但沒有具體驗證,本文正是為了驗證上文中關(guān)于新架構(gòu)MEX結(jié)點與業(yè)務(wù)終結(jié)點分離更有利于服務(wù)安全的結(jié)論,并稍帶著講述如何在vs2008中用ajax與wcf進(jìn)行交互.
第一步: 在vs2008中創(chuàng)建一個網(wǎng)站.
在vs2008中,創(chuàng)建網(wǎng)站時候如果選擇.Net Framework 3.5的模板,那么創(chuàng)建好的項目中web.config中自動帶有ajax的配置.這個在上文中說過.而且在右面的工具箱中也有Ajax控件欄
但如果創(chuàng)建的.net framework 2.0的網(wǎng)站默認(rèn)情況下web.config中是不支持ajax的.但也有解決辦法,下文再說.
第二步: 創(chuàng)建一個可用于ajax交互的wcf服務(wù)AjaxWcfService.svc,方式如下:
修改模板產(chǎn)生的服務(wù)代碼如下:
[OperationContract] 
public int IntAdd(int a,int b) 
{ 
// 在此處添加操作實現(xiàn) 
return a+b; 
} 
在瀏覽器中瀏覽AjaxWcfService.svc,會出現(xiàn)下面的效果:
第三步: 好,下面一個步驟和原來的xml web service與ajax交互使用方法不太一致.步驟如下 :
訪問第二步打開的AjaxWcfService.svc網(wǎng)址后面添加/js的網(wǎng)址,如圖所示:
哈哈,這樣便能下載到用于訪問wcf服務(wù)的js代理.將該文件保存起來,我這里命名為AjaxWcfScript.js,然后將其添加到項目的根目錄中(其他位置也可,位置自選) .
第四步:到第三步結(jié)束,與WCF相關(guān)的操作基本已經(jīng)完成,下面進(jìn)行的是ajax的開發(fā).
在default.aspx中添加scriptmanager從右面的工具箱中拖一個ScriptManager的控件到default.aspx中,然后添加ScriptReference,完成后的ScriptManager代碼如下:
<asp:ScriptManager ID="ScriptManager1" runat="server"> 
<Scripts> 
<asp:ScriptReference Path="~/AjaxWcfScript.js" /> 
</Scripts> 
</asp:ScriptManager> 
第五步: 第四步基本實現(xiàn)頁面default.aspx對scriptmanager的支持,并且添加了訪問WCF服務(wù)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()"/>
第六步: 好,現(xiàn)在萬事俱備,只欠測試了,在瀏覽器中瀏覽default.aspx,隨便在輸入框中輸入連個數(shù)字,點擊提交,結(jié)果如下:
好,一個perfect的ajax與wcf到此結(jié)束.
國際慣例,最后呈上示例代碼:
/Files/jillzhang/AjaxWcf.rar
出處:http://jillzhang.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

Ajax與WCF交互-WCF之美
上面一篇博文Ajax訪問Xml Web Service的安全問題以及解決方案中談及xml web service與wcf新老架構(gòu)對于ajax安全性的問題,得出了結(jié)論,但沒有具體驗證,本文正是為了驗證上文中關(guān)于新架構(gòu)MEX結(jié)點與業(yè)務(wù)終結(jié)點分離更有利于服務(wù)安全的結(jié)論,并稍帶著講述如何在vs2008中用ajax與wcf進(jìn)行交互.


浙公網(wǎng)安備 33010602011771號