[C#/WebApi]WebApi跨域问题

论坛 期权论坛 脚本     
已经匿名di用户   2022-2-7 16:34   2423   0

最近因为业务需要,需要写个接口,尝试了使用下WebApi,就遇到的跨域问题做个说明。

跨域很好理解,就是当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同的时候,就是跨域。

请求调用Api,报错如下:

解决方法:

1. 安装NuGet包: Microsoft.AspNet.WebApi.Cors,安装方法在此不再概述;

2. 在App_Start的WebApiConfig中添加跨域配置:

namespace WebApi
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API 配置和服务

            //跨域配置
            config.EnableCors();

            // Web API 路由
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

网上搜索跨域问题解决,大致的方法都是如此,但本次尝试发现按此步骤后问题还是没有解决,最后经过多次尝试,还有第三步;

3. 在Web.config的webServer中添加此段代码,跨域问题解决。

  <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>

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP