webapi踩的坑

2021-04-12 05:27

阅读:424

标签:content   技术分享   需求   pen   asa   type   hid   域名   AC   

1.webapi跨域   需要在web.config的节点中添加

技术分享图片技术分享图片

    "Access-Control-Allow-Origin" value="*" />
        
        "Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        
        "Access-Control-Allow-Headers" value="x-requested-with,content-type" />
        
        "Access-Control-Request-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        
      
跨域配置

2.webapi设置默认返回json格式   需要在WebApiConfig文件的Register方法中添加以下代码

技术分享图片技术分享图片
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
            //默认返回 json  
            GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(
                new QueryStringMapping("datatype", "json", "application/json"));

            // 解决json序列化时的循环引用问题
            config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
WebApiConfig配置

3.post请求webapi传参问题

移步到:https://www.cnblogs.com/landeanfen/p/5337072.html

 

4.跨域请求需要传自定义头导致请求失败时

跨域请求会先发送一个预处理请求再发送实际请求,预处理请求是OPTIONS类型,所以需要给他特殊处理一下

(1)在Global.asax文件中添加以下方法:

技术分享图片技术分享图片
protected void Application_BeginRequest(object sender, EventArgs e)
        {
            var res = HttpContext.Current.Response;
            var req = HttpContext.Current.Request;

            //自定义header时进行处理
            if (req.HttpMethod == "OPTIONS")
            {
                res.AppendHeader("Access-Control-Allow-Headers", "Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name,Token,Cookie");
                res.AppendHeader("Access-Control-Allow-Methods", "POST,GET,PUT,PATCH,DELETE,OPTIONS");
                res.StatusCode = 200;
                res.End();
            }
        }
预处理请求特殊处理

(2)在web.config的跨域配置中找到name=“Access-Control-Allow-Headers” ,然后在它的value中加上自己所传的自定义header名,如下图

技术分享图片

 

webapi踩的坑

标签:content   技术分享   需求   pen   asa   type   hid   域名   AC   

原文地址:https://www.cnblogs.com/stupid-dong/p/9013429.html


评论


亲,登录后才可以留言!