改变mvc web api 支持android ,ios ,ajax等方式跨域调用

公司一个移动后端的项目用到了

webapi 

项目搭建到外网环境共app开发者调用测试接口时遇到了一个问题

接口不允许跨域调用

。查阅资料明白 

 同源策略原则根据请求报头值

Origin

与回应报头值

Access-Control-Allow-Origin 

来判断是否允许调用

解决方法

1.ajax使用jsonp

jsonp 是通过请求参数中加入回调函数参数值。webapi 收到回调函数参数值返回数据不再是单纯的json,而是根据回调函数参数值

的js方法调用,这样就避免的同源策略

需要webapi 重写json序列化方法 。

JsonMediaTypeFormatter

2.针对于ios等终端,

 


简单方法可直接配置iis的http头

此方法简单快捷不安全
暴露了所有
3.重写web api的
DelegatingHandler
加入自定义的http头
4.利用web api 自身的扩展
Microsoft ASP.NET Web API 2 Cross-Origin Support

 

posted @ 2014-06-26 15:03  大掌柜的老板  阅读(3814)  评论(3编辑  收藏  举报