(转)Asp.NET MVC+WebAPI跨域调用

2017-04-10 10:15:31

使用jQuery调用WebApi有时会遇到跨域的问题,今天介绍一种可以简单解决跨域问题的方法。

当我们跨域请求WebAPI的时候会提示以下信息:

XMLHttpRequest cannot load http://localhost:9641/api/news/GetData. No 'Access-Control-Allow-Origin' header is present on the requested resource.

Origin 'http://localhost:9530' is therefore not allowed access.

 

 

像这种情况,只需要在WEBAPI项目的Web.Config配置文件中设置

Access-Control-Allow-Origin 即可

1
2
3
4
5
6
7
8
9
"Access-Control-Allow-Origin" value="*" />
"Access-Control-Max-Age" value="30"/>
"Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/>
"Access-Control-Allow-Headers" value="Content-Type, Accept" />

  这段配置文件需要加在WebAPI的Web.config 中 节点下

 

注:如遇到Post请求时,提示404,排除URL不符合路由规则外,还需注意是否有加 [FromBody] ,且[FromBody]只能修饰一个参数,如果需要传多个参数时,需要封装成对象。

这是我写的小例子。:-D

http://download.csdn.net/detail/u010822637/9634076

 

如果你只想整个API只对某一个域使用就将Web.Config
如果只是针对某一个控制器或者方法时,只需要加一个ActionFilterAttribute过滤器重写OnActionExecuted方法,在里面做验证即可。

发表评论:

Powered by PHP 学习者(mail:517730729@qq.com)

原百度博客:http://hi.baidu.com/ssfnadn

备案号:闽ICP备17000564号-1

开源中国 PHPCHINA