支持ajax 跨域调用的WCF配置

1.首先我们需要让我们的操作类支持ajax,把下面的添加到实现类上

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

添加之后是这样的:

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class Service1 : IService1

2.在Web.Config配置文件system.serviceModel节点下添加如下配置:

<!--打开aspnet兼容模式-->

<serviceHostingEnvironment multipleSiteBindingsEnabled="true">

<!--添加一个standardEndpoints节点-->

<standardEndpoints>

    <webHttpEndpoint>

        <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" crossDomainScriptAccessEnabled="true" />

    </webHttpEndpoint>

</standardEndpoints>

3.右键项目--添加--新建项,选择全局应用程序类(Global.asax)添加,然后打开找到Application_BeginRequest方法添加如下代码:

///移动跨域请求,会请求两次,第一次OPTIONS 空数据请求,为了获取是否允许跨域,

///第二次才是带数据请求,所以为了避免程序上一些Bug,

///空请求时就直接返回,不需要经过业务处理.

protected void Application_BeginRequest(object sender, EventArgs e)       

 {           

     if (HttpContext.Current.Request.HttpMethod == "OPTIONS")            

    {                

        Response.End();            

    }        

}

4.至此完成,亲测可行。注:自己也是第一次接触WCF编程,在网上也搜了好多例子看,基本都是添加服务行为,或者移除IIS的OPTIONSVerbHandler,照着敲下来还是没能解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,953评论 6 342
  • 小时候听到忧郁症的时候,正好也是在看《流星花园》的时候。花泽类就是忧郁型的,觉得忧郁特别酷。听大人说得忧郁症的人会...
    Jzzzz阅读 721评论 0 1
  • 大家不要忘记着泰山创业工场polo衫。请以最饱满的热情欢迎我们的贵宾。以下是今天的工作安排。如果个人或者事务进度过...
    kisshhua阅读 470评论 0 0