使用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 即可
<!--跨域配置--> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Max-Age" value="30"/> <add name="Access-Control-Allow-Methods" value="GET,POST,OPTIONS"/> <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" /> </customHeaders> </httpProtocol>
这段配置文件需要加在WebAPI的Web.config 中<system.webServer> 节点下
注:如遇到Post请求时,提示404,排除URL不符合路由规则外,还需注意是否有加 [FromBody] ,且[FromBody]只能修饰一个参数,如果需要传多个参数时,需要封装成对象。
这是我写的小例子。:-D
http://download.csdn.net/detail/u010822637/9634076