Ajax与WCF交互 WCF之美
上面一篇博文<<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"
相关文档:
一、概述
考虑Html本身不带定时刷新页面的控件,且不考虑使用第三方控件;因此考虑使用Javascript中的setTimeout+xmlhttp来实现定时更新页面中部分内容,此实现在IE6.0及以上版本测试通过,其他浏览器暂时未测试过。
二、功能及特点
1、Javascript通过Microsoft的MSXML对象,动态获取后台数据库数据;
&n ......
转载于http://xzio.javaeye.com/blog/91713
最初看到ajax感觉好惊喜啊,不用刷新全部页面,就可以更改局部页面数据。真的很方法
但是以为会很难,但实际做了才知道,AJAX很简单。至少入门很简单 如果你会ajax那就不要看了。更不要骂我。比我牛的人太多了
互相交流,学习。MSN:whw_dream(AT)hotmail.com
首先是jsp页面和 ......
IDE:Visual Web Developer 2008 Express Edition
数据库:Access 2007
到http://www.asp.net/ajax/downloads/下载AJAX Control Toolkit,将AjaxControlToolkit.dll拷贝到项目的bin目录下,在工具栏中引入。
WebService的代码:(aaa.asmx)
Public Function GetCompletionList(ByVal prefixText As String, ByVal coun ......
function sendAsynchronRequest(url,parameter,callback){
createXMLHttpRequest();
if(parameter == null){
xmlHttp.onreadystatechange = callback;
xmlHttp.open("GET",url,true);//当GET请求时,在地址栏中是带参数的,而参数为NULL,所以用get请求,send(null)
......
function createXMLHttpRequest(){
if(window.ActiveXObject){
http = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
& ......