ASP.NET中Web API解决跨域问题的攻略主要分为以下几个步骤:
1. 安装CORS相关包
打开Visual Studio NuGet Package Manager,搜索Microsoft.AspNet.WebApi.Cors
,安装该包。
2. 启用CORS支持
在WebApiConfig.cs中增加以下代码:
public static void Register(HttpConfiguration config)
{
//启用CORS支持
config.EnableCors();
//...
}
3. 配置CORS策略
在Web.config中增加以下代码:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
</system.webServer>
其中,Access-Control-Allow-Origin
表示允许跨域访问的域名,*
表示允许所有域名访问,也可以指定特定域名,如http://localhost:8080
;Access-Control-Allow-Headers
和Access-Control-Allow-Methods
分别指定允许的请求头和请求方法。
示例一
假设我们有一个GET请求的API接口,项目名称为DemoProject
,控制器名称为DemoController
,接口路径为/api/demo
,我们想要允许IP地址为192.168.0.100
的客户端访问该接口。
我们只需在Web.config的<customHeaders>
元素中增加以下配置:
<add name="Access-Control-Allow-Origin" value="http://192.168.0.100" />
示例二
假设我们有一个POST请求的API接口,项目名称为DemoProject
,控制器名称为DemoController
,接口路径为/api/demo
,我们允许任何域名访问该接口,并且允许的请求头有Content-Type
和Authorization
,允许的请求方法有POST
和OPTIONS
。
我们只需在Web.config的<customHeaders>
元素中增加以下配置:
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Authorization" />
<add name="Access-Control-Allow-Methods" value="POST, OPTIONS" />
至此,ASP.NET中Web API解决跨域问题的攻略就介绍完毕了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ASP.NET中Web API解决跨域问题 - Python技术站