.NET处理VUE OPTIONS请求问题

       最近做了一个前后端分离的项目,后台用的.NET MVC写的接口,前台用的VUE。出现了一个问题,就是在后台获取Header Token的时候,怎么也获取不到,后来发现VUE前端在请求的时候,先发送了一个OPTIONS请求,也就是大家说的预请求,这个请求是获取不到Header里边的内容,如果OPTIONS请求不能正常处理,那么后边真正的POST的请求也不会再进行,所以只有这个OPTIONS请求通过之后,才能处理真正的POST请求,但是OPTIONS请求和POST请求,都是访问的同一个接口地址,怎么区分处理呢?目前我是在OnActionExecuting方法里做的处理。

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    //对OPTIONS请求做处理
    if (Request.HttpMethod == "OPTIONS")
    {
        JsonResult jsResult = new JsonResult();               
        filterContext.HttpContext.Response.AddHeader("Access-Control-Allow-Headers", "token");                
        filterContext.Result = jsResult;
    }
    else
    {
        //其他正常处理代码
    }            
}      

       在处理的时候加了一个"Access-Control-Allow-Headers",“token”,如果OPTIONS请求没有返回这个自定义Header内容,那么预请求的结果就是不允许传自定义Header,那么后边的POST请求也不会拿到数据,所以加了一个这个东西。

       目前我是这么想也是这么处理的,欢迎讨论指正。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值