最近在项目中用到了 WCF4.0 REST。在跨域调用时走了不少弯路,查了不少技术强人的文章,其实它真的就这么容易。好了不废话了直接贴代码。

调用的服务类:

 1     [ServiceContract]
 2     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
 3     [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
 4     [JavascriptCallbackBehavior(UrlParameterName="callback")]
 5     public class Writing
 6     {
 7 
 8         [WebGet(UriTemplate="", ResponseFormat=WebMessageFormat.Json)]
 9         public List<Top> GetCollection()
10         {
11             WritingContext _context = new WritingContext();
12 
13             return _context.Database
14                 .SqlQuery<Top>("SELECT TOP 15 WRITINGID Id, WRITING Title FROM YC_WRITING ORDER BY WRITINGID DESC")
15                 .ToList();
16         }
17     }
  配置文件:
 1   <system.serviceModel>
 2     <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
 3     <standardEndpoints>
 4       <webHttpEndpoint>
 5         <!-- 
 6             Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
 7             via the attributes on the <standardEndpoint> element below
 8         -->
 9         <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false" 
10                           crossDomainScriptAccessEnabled="true"/>
11       </webHttpEndpoint>
12     </standardEndpoints>
13   </system.serviceModel>

真正实现夸域调用只需要两步:

  1. 类文件中添加[JavascriptCallbackBehavior(UrlParameterName="callback")]
  2. 配置文件的 standardEndpoint 添加 crossDomainScriptAccessEnabled="true"

最后需要注意的是WCF REST service 模板生成的配置文件automaticFormatSelectionEnabled属性默认是true,需要将其设置为false否则firefox里返回的将是xml格式。

转载于:https://www.cnblogs.com/mickeyooo/archive/2011/05/18/wcf_4_rest_services_jsonp.html

WCF 4.0 REST Service JSON跨域调用相关推荐

  1. 【转载】一个通过JSONP跨域调用WCF REST服务的例子(以jQuery为例)

    一个通过JSONP跨域调用WCF REST服务的例子(以jQuery为例) JSONP(JSON with Padding)可以看成是JSON的一种"使用模式",用以解决" ...

  2. jquery跨域调用wcf

    使用jquery跨域调用wcf服务的时候会报如下错误 1 $.ajax({ 2 url: 'http://localhost:28207/Service1.svc/GetData', 3 method ...

  3. springMVC获取异步请求的参数,返回异步请求数据(json),跨域访问简单了解,文件上传,与Restful风格

    springMVC获取异步请求的参数 JQuery发送异步请求回顾 <a href="javascript:void(0);" id="testAjax" ...

  4. js跨域调用php接口,php的json格式和js跨域调用的代码

    function jsontest() { var json = [{'username':'crystal','userage':'20'},{'username':'candy','userage ...

  5. php 跨域 json,PHP json格式和js json格式 js跨域调用实现代码

    先看一个js函数 function jsontest() { var json = [{'username':'crystal','userage':'20'},{'username':'candy' ...

  6. linux c调用wcf服务,Silverlight+WCF实现跨域调用

    在这篇文章中,WCF扮演服务器,向外提供LoginVaild服务:Silverlight扮演客户端,调用WCF提供的LoginVaild服务.思路有了,下面进行代码实现. 数据库脚本实现 新建T_Us ...

  7. JSON跨域解决方案收集

    JSON跨域解决方案收集 参考文章: (1)JSON跨域解决方案收集 (2)https://www.cnblogs.com/hgmyz/p/7145268.html 备忘一下.

  8. jquery跨域调用webService

    jquery跨域调用webService,以及解决跨域情况下只能返回XMl格式数据的问题 http://lu.9efish.com/blog/jquery-cross-domain-call-asp. ...

  9. 跨域调用WebService

    WebService使用还是比较广泛的,这里我们来介绍两种跨域请求调用WebService的方法. 首先我们来介绍下什么是WebService,Web Service也叫XML Web Service ...

最新文章

  1. JS日历控件集合----附效果图、源代码
  2. linux下安装apache tomcat,Linux CentOS 7下 Apache Tomcat 7 安装与配置
  3. Conficker-AE的处理方法
  4. js中两个对象的比较
  5. ECCV 2018 | Pixel2Mesh:从单帧RGB图像生成三维网格模型
  6. CAP 3.0 版本正式发布
  7. IT行业培训必读:优秀程序员的十个习惯
  8. 十六位顶尖专家齐聚,解密阿里云最新核心技术竞争力!
  9. bootice.exe linux 启动盘,怎么用bootice自己手动制作U盘启动-支持BIOS+UEFI
  10. 车间调度建模系列4|扩展析取图之工序相关性
  11. 链路聚合(Port-Channel)
  12. 来,让我用Python给你算一命
  13. 在 python 中使用 Selenium 报错self.capabilities = response['value'] KeyError: 'value'的解决办法
  14. ctf实验吧writeup
  15. armbian开启ssh_Armbian Ubuntu启用netplan配置网络
  16. 遥感智能解译相关产品及公司
  17. 移动终端安全 顶级会议_顶级移动应用开发公司
  18. CART回归树原理及示例
  19. Robot Toolbox (一):Puma机器人仿真
  20. 深入浅出Java clone技术

热门文章

  1. iOS 二进制流转化-项目笔记
  2. linux命令之date
  3. 黑白青春-纪念那年我的秋天
  4. (转载博文)VC++API速查
  5. WinAPI: SetWindowPos - 改变窗口的位置与状态
  6. 安装截图软件shutter
  7. 为私有Kubernetes集群创建LoadBalancer服务
  8. 郁闷的时候看看这头驴,改变你的心态!
  9. 解析Jquery取得iframe中元素的几种方法
  10. 请教context:component-scan/和mvc:annotation-driven/的区别20