jquery调用wcf并展示出数据的方法


Posted in Javascript onJuly 07, 2011

首选创能wcf,代码很简单,如下:

using System; 
using System.Data; 
using System.ServiceModel; 
using System.ServiceModel.Activation; 
using System.ServiceModel.Web; 
using System.Web.Script.Services; [ServiceContract(Namespace = "")] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
public class imgService 
{ 
// 要使用 HTTP GET,请添加 [WebGet] 特性。(默认 ResponseFormat 为 WebMessageFormat.Json) 
// 要创建返回 XML 的操作, 
// 请添加 [WebGet(ResponseFormat=WebMessageFormat.Xml)], 
// 并在操作正文中包括以下行: 
// WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; 
[OperationContract] 
[WebGet(RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json)] 
//[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json,BodyStyle = WebMessageBodyStyle.WrappedRequest)] 
public DataTable GetDataTable(string pz) 
{ 
// 在此处添加操作实现 
DataSet ds = WebBase.GetDS(WebBase.meinvRepository, string.Empty, " body_id desc",pz); 
if (ds.Tables.Count > 0) 
return ds.Tables[0]; 
return null; 
} 
// 在此处添加更多操作并使用 [OperationContract] 标记它们 
}

说明一下,wcf就一个GetDataTable方法,有一个参数pz表示返回数据的行数,返回的table以json数据给jquery使用

页面调用方法也很简单:

<%@ Page Language="C#" EnableViewState="false" AutoEventWireup="true" CodeFile="Default.aspx.cs" 
Inherits="jquerywcf_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<title></title> 
<script src="../Scripts/jquery-1.4.1-vsdoc.js" type="text/javascript"></script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div class="main"> 
<ul><li><a></a></li></ul> 
</div> 
<div> 
<script type="text/javascript"> 
function sendAJAX(data) { 
var url = "<%=_url %>imgService.svc/GetDataTable"; $.getJSON(url, { pz: "6" }, function (msg) { 
$(msg.d).find("Table").each(function (i) { 
var rq = $(this).children("Body_AddTime").text().split('T')[0].replace("-", "").replace("-", ""); 
rq = rq.substring(0, rq.length - 2); 
var html = '<li><a href="http://meinv.vs2010.com/topic/' + $(this).children("Body_MuLuID").text() + '/' + rq + '/show-id' + $(this).children("Body_ID").text() + '.html" target="_blank"><img src="http://meinv.vs2010.com/' + $(this).children("Body_Tu").text() + '" />' + $(this).children("Body_Name").text() + '</a></li>'; 
$(".main ul").append(html); 
}); 
}); 
} 

$(function () { 
sendAJAX(); 
}); 
</script> 
<div id="msg"> 
</div> 
</div> 
</form> 
</body> 
</html>

说明一下,主要是通过jquery的getjson方法去取得wcf返回的数据,传参方法:

$.getJSON(url, { pz: "6" }, function (msg) {alert(msg.d)});这里是返回6条数据还有wcf的svc上加上属性:
Factory=System.ServiceModel.Activation.WebScriptServiceHostFactory还有web.config的配置:

<?xml version="1.0"?> 
2 <configuration> 
3 
4 <configSections> 
5 <!--ajax--> 
6 <sectionGroup name="ajaxNet"> 
7 <section name="ajaxSettings" type="AjaxPro.AjaxSettingsSectionHandler,AjaxPro.2" requirePermission="false" restartOnExternalChanges="true"/> 
8 </sectionGroup> 
9 <!--ajax--> 
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/> 
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" /> 
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" /> 
</sectionGroup> 
</sectionGroup> 
</sectionGroup> 
</configSections> 
<appSettings/> 
<connectionStrings> 
<add name="meinvvs2010ConnectionString" connectionString="server=127.0.0.1;user id=test; password=test; database=test;pooling=false" providerName="MySql.Data.MySqlClient"/> 
</connectionStrings> 
<!--ajax--> 
<ajaxNet> 
<ajaxSettings> 
<urlNamespaceMappings useAssemblyQualifiedName="false" allowListOnly="false"/> 
<jsonConverters includeTypeProperty="true"/> 
<debug enabled="false"/> 
<token enabled="false" sitePassword="password"/> 
</ajaxSettings> 
</ajaxNet> 
<location path="ajaxpro" allowOverride="true" inheritInChildApplications="false"> 
<system.web> 
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8"/> 
<!--for iis7 
<system.webServer> 
<handlers> 
<add verb="*" path="*.ashx" name="AjaxPro" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> 
</handlers> 
</system.webServer>--> 
<!--for iis6--> 
<httpHandlers> 
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> 
</httpHandlers> 
</system.web> 
</location> 
<!--ajax--> 
<system.web> 
<customErrors mode="Off"/> 
<compilation debug="true"> 
<assemblies> 
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
<add assembly="System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
</assemblies> 
<buildProviders> 
<remove extension=".svc"/> 
<add extension=".svc" type="System.ServiceModel.Activation.ServiceBuildProvider,System.ServiceModel, Version=3.0.0.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"/> 
</buildProviders> 
</compilation> 

<!-- 
通过 <authentication> 节可以配置 
安全身份验证模式,ASP.NET 
使用该模式来识别来访用户身份。 
--> 
<authentication mode="Windows" /> 
<!-- 
如果在执行请求的过程中出现未处理的错误, 
则通过 <customErrors> 节 
可以配置相应的处理步骤。具体而言, 
开发人员通过该节可配置要显示的 html 错误页, 
以代替错误堆栈跟踪。 
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> 
<error statusCode="403" redirect="NoAccess.htm" /> 
<error statusCode="404" redirect="FileNotFound.htm" /> 
</customErrors> 
--> 
<pages> 
<controls> 
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
</controls> 
</pages> 
<httpHandlers> 
<remove verb="*" path="*.asmx"/> 
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/> 
</httpHandlers> 
<httpModules> 
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> 
</httpModules> 
</system.web> 
<system.codedom> 
<compilers> 
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" 
type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
<providerOption name="CompilerVersion" value="v3.5"/> 
<providerOption name="WarnAsError" value="false"/> 
</compiler> 
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" 
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
<providerOption name="CompilerVersion" value="v3.5"/> 
<providerOption name="OptionInfer" value="true"/> 
<providerOption name="WarnAsError" value="false"/> 
</compiler> 
</compilers> 
</system.codedom> 
<!-- 
system.webServer 节是在 Internet Information Services 7.0 下运行 ASP.NET AJAX 
所必需的。对早期版本的 IIS 来说则不需要此节。 
--> 
<system.webServer> 
<validation validateIntegratedModeConfiguration="false"/> 
<urlCompression doStaticCompression="true" doDynamicCompression="true"/> 
<httpErrors errorMode="Detailed" /> 
<asp scriptErrorSentToBrowser="true"/> 

<modules> 
<remove name="ScriptModule" /> 
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
</modules> 
<handlers> 
<remove name="WebServiceHandlerFactory-Integrated"/> 
<remove name="ScriptHandlerFactory" /> 
<remove name="ScriptHandlerFactoryAppServices" /> 
<remove name="ScriptResource" /> 
<remove name="svc" /> 
<add name="svc" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode" /> 
<add verb="*" path="*.ashx" name="AjaxPro" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/> 
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" 
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" 
type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
</handlers> 
</system.webServer> 
<runtime> 
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1"> 
<dependentAssembly> 
<assemblyIdentity name="MySql.Data" publicKeyToken="C5687FC88969C44D"/> 
<!--<bindingRedirect oldVersion="5.0.7.0" newVersion="6.3.2.0"/>--> 
<bindingRedirect oldVersion="5.0.7.0" newVersion="6.2.3.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/> 
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
</dependentAssembly> 
<dependentAssembly> 
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/> 
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/> 
</dependentAssembly> 
</assemblyBinding> 
</runtime> 
<system.serviceModel> 
<behaviors> 
<endpointBehaviors> 
<behavior name="imgServiceAspNetAjaxBehavior"> 
<enableWebScript /> 
</behavior> 
</endpointBehaviors> 
</behaviors> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" > 
<baseAddressPrefixFilters> 
<!--<add prefix="http://demo.vs2010.com"/>--> 
</baseAddressPrefixFilters> 
</serviceHostingEnvironment> 
<services> 
<service name="imgService"> 
<endpoint address="" behaviorConfiguration="imgServiceAspNetAjaxBehavior" 
binding="webHttpBinding" contract="imgService" /> 
</service> 
</services> 
</system.serviceModel> 
</configuration>

好的,成功!上传到gd空间试试 :)
Javascript 相关文章推荐
JavaScript加强之自定义callback示例
Sep 21 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
js数字计算 误差问题的快速解决方法
Feb 28 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
基于jQuery中ajax的相关方法汇总(必看篇)
Nov 08 jQuery
layui实现文件或图片上传记录
Aug 28 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
JavaScript常用事件介绍
Jan 21 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
Aug 14 Javascript
构建一个JavaScript插件系统
Oct 20 Javascript
基于json的jquery地区联动效果代码
Jul 06 #Javascript
JQury slideToggle闪烁问题及解决办法
Jul 05 #Javascript
jquery中通过过滤器获取表单元素的实现代码
Jul 05 #Javascript
jquery中获取元素的几种方式小结
Jul 05 #Javascript
JavaScript 判断日期格式是否正确的实现代码
Jul 04 #Javascript
Javascript计算时间差的函数分享
Jul 04 #Javascript
ajax 同步请求和异步请求的差异分析
Jul 04 #Javascript
You might like
php中实现简单的ACL 完结篇
2011/09/07 PHP
yii实现级联下拉菜单的方法
2014/07/31 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
jQuery之ajax技术的详细介绍
2013/06/19 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
使用CamanJS在Web页面上处理图像的技巧
2015/08/18 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
基于javascript实现九九乘法表
2016/03/27 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
bootstrap日期控件问题(双日期、清空等问题解决)
2017/04/19 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
python使用心得之获得github代码库列表
2014/06/25 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
tensorflow之自定义神经网络层实例
2020/02/07 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
农民入党思想汇报
2014/01/03 职场文书
班级安全教育实施方案
2014/02/23 职场文书
计算机毕业大学生求职信
2014/06/26 职场文书
工作求职信
2014/07/04 职场文书
大三学年自我鉴定范文(3篇)
2014/09/28 职场文书
客户经理岗位职责
2015/01/31 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
七年级生物教学反思
2016/02/20 职场文书