webapi 跨域解决方案
2016-09-07 11:03 莫球名堂 阅读(269) 评论(0) 编辑 收藏 举报方法1.添加节点
<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol> </system.webServer>
方法2.添加一个过滤器,在需要跨域的接口上添加属性:
//创建过滤器 public class CrossSiteAttribute : ActionFilterAttribute { private const string Origin = "Origin"; private const string AccessControlAllowOrigin = "Access-Control-Allow-Origin"; private const string originHeaderdefault = "*"; public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { actionExecutedContext.Response.Headers.Add(AccessControlAllowOrigin, originHeaderdefault); } } //添加属性 [CrossSite] public string Get(int id) { string result = "{\"name\":\"zhangsan\",\"date\":\"2012-12-03\"}"; return result; }
3.调用
<script> $.ajax({ type: 'GET', url: 'http://localhost:3786/api/Values/Get?id=1', dataType: 'JSON', success: function (data) { alert(data); } }); </script>