MVCWebApi跨域解决方案之一

这两天在用AngularJS配合WebAPi做项目开发,因为是分布在两个项目上面的,所以首先要解决的就是跨域问题,之前有写过一篇用AngularJS处理跨域的问题,对应的后台没有写出来,今天在这里补充一下后台的内容。
附上AngularJS的解决方案
下面我会列出WebApi的跨域解决方案已经所遇到的一些坑

 public class JsonCallbackAttribute : ActionFilterAttribute
    {
        private const string CallbackQueryParameter = "callback";
        public override void OnActionExecuted(HttpActionExecutedContext context)
        {
            var callback = string.Empty;

            if (IsJsonp(out callback))
            {
                var jsonBuilder = new StringBuilder(callback);
                jsonBuilder.AppendFormat("({0})", context.Response.Content.ReadAsStringAsync().Result);
                context.Response.Content = new StringContent(jsonBuilder.ToString());
            }
            base.OnActionExecuted(context);
        }

        private bool IsJsonp(out string callback)
        {
            callback = HttpContext.Current.Request.QueryString[CallbackQueryParameter];

            return !string.IsNullOrEmpty(callback);
        }
    }

在你的mvc项目里面新建一个类,类名自个随便定义啦!
用过mvc的人应该知道,继承ActionFilterAttribute方法的作用,这里不多做解释了。
其实这段代码已经帮你解决了跨域的问题,但是这段代码需要执行才会有作用,这里就需要对这个方法做一些配置才行。

 config.Filters.Add(new JsonCallbackAttribute());

走到这里的时候,问题就来了,有的人虽然配置过了,但是运行起来一直报错,提示还有接口没有实现
或者没有报错,但是进不了这个方法,这个问题当时我也郁闷了很久,其实很简单
我们这个项目是一个WebApi的项目,在针对接口的配置,我们需要配置的地方不同

4.png

需要在WebApiConfig里面进行配置才会正确,相信很多人遇到过这个坑,在这里跟大家说一下。
还有一个问题大家也需要注意一下,一般项目不会只有一个配置,这里大家需要注意一下先后顺序的问题

  jsonBuilder.AppendFormat("({0})", context.Response.Content.ReadAsStringAsync().Result);

不然这里的代码可能会出错哦,错误提示我忘了,好像是有什么没有关闭啥的,如果有知道这个错误原理的朋友给我留个言,谢谢!
<h2>另外祝大家2017新年快乐!万事如意

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

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,010评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,281评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,779评论 25 709
  • 秋渐渐的去 冬渐渐的来 空气中夹杂着秋天的风 夹杂着冬天的清冷 夹杂着纠结的不舍得 等了又一年 期待了又一年 顺其...
    裴先生那些事阅读 465评论 0 0
  • 足迹版有需要联系我 专业机构亲子绘本己下单定购 待续…… 彩虹鱼系列 鱼就是鱼 树真好 大熊抱抱
    Q同学会阅读 274评论 0 0