支持ajax跨域调用的WCF搭建示例
支持ajax 跨域调用的WCF搭建1.新建一个"ASP.NET空Web应用程序"项目。
2.新建一个“WCF服务(支持ajax)”。3.修改WCFAjaxService.svc下的WCFAjaxService.svc.cs文件 如下所示(示例):
namespace WCF_Ajax跨域调用示例 { [ServiceContract(Namespace = "WCF_Ajax跨域调用示例")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [JavascriptCallbackBehavior(UrlParameterName = jsoncallback")] public class WCFAjaxService { [OperationContract] [WebGet(ResponseFormat = WebMessageFormat.Json)] public List<UserInfo> GetUser() { return new List<UserInfo>(){ new UserInfo(){Id=1,Name=jayjay1"},2,0)">jayjay2"}}; } } [DataContract] class UserInfo { [DataMember] int Id { get; set; } [DataMember]
string Name { set; } } }
注意别忘了给Service打上 [JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")] 标记。 4.修改Web.config配置文件<system.serviceModel> bindings> webHttpBinding> binding name="HttpJsonBinding" crossDomainScriptAccessEnabled="true"></binding</behaviors> endpointBehaviors> behavior ="AjaxServiceAspNetAjaxBehavior"> enableWebScript /> behaviorserviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled/> servicesservice ="AjaxService"endpoint address="" behaviorConfiguration="AjaxServiceAspNetAjaxBehavior" binding="webHttpBinding" bindingConfiguration contract="AjaxService" /> service> > 注意,配置文件中添加了 >
节点,并在endpoint节点中添加了 bindingConfiguration="HttpJsonBinding" 5.调用方式在另一个网站中使用
$.ajax({ url: "http://localhost:46318/WCFAjaxService.svc/GetUser?jsoncallback=?",type: "get",dataType: "jsonp",success: function (data) { alert(data[0]); } }); 调用。 从返回报文中可以看出数据以jsonp格式跨域返回。 jsonp1430098026913([{"__type":"UserInfo:#WCF_Ajax%E8%B7%A8%E5%9F%9F%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B","Id":1,"Name":"jayjay1"},{"__type":"UserInfo:#WCF_Ajax%E8%B7%A8%E5%9F%9F%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B","Id":2,"Name":"jayjay2"}]); data[0]指的是取第一个json对象,如 data[0].Name取到“jayjay1” 。 转自 http://www.cnblogs.com/sunniest/p/4459130.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |