关于web网页Js请求头的设置

52 篇文章 1 订阅
31 篇文章 0 订阅

目的:完成在vue项目里的请求头设置,并在webapi中获取头,然后执行一定的操作(vue+.net webapi)。

结果:顺利完成,web请求头缺乏全面的l了解,真正的企业项目中都会对请求的拦截处理。

步骤:

1.设置vue请求拦截配置请求头。

import axios from 'axios';
 

let util = {

};
 

const ajaxUrl = 'http://localhost:33490'

util.ajaxUrl=ajaxUrl;
util.ajax = axios.create({
    baseURL: ajaxUrl,
    timeout: 100000
});

 //添加请求拦截器
util.ajax.interceptors.request.use(function (config) {

     const token = window.sessionStorage.getItem("token");//获取web缓存

     if (token) {
         // 这里将token设置到headers中,header的key是Authorization,这个key值根据你的需要进行修改即可
          config.headers.common["Authorization"] ='Bearer ' +token //Bearer后面一定要有个空格
          if (JSON.parse(window.sessionStorage.getItem("store")) !=null) 
          {
           config.headers.common["StoreId"] = JSON.parse(window.sessionStorage.getItem("store")).Id;
          }
        console.log("设置请求头")
     }
    return config;
  }, function (error) {
    console.log("请求错误")
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 添加响应拦截器
util.ajax.interceptors.response.use(function (response) {
   console.log('响应成功')
   console.log(response)
    if(response.data.ErrorCode!="" )
    {
       console.log("响应错误拦截")
    }
    return response;
  }, function (error) {
    console.log("响应错误")
    return Promise.reject(error);
  });
export default util;

 

2.后台拦截webapi获取请求响应

webap注册响应拦截,


            //注册路由过滤器
            //builder.Register(c => new BossAppAuthFilter(c.Resolve<YPC_IAccountService>())).AsWebApiActionFilterFor<BossControllerBase>().InstancePerApiRequest();
            builder.Register(c => new AuthorizeFilterAttribute(c.Resolve<YP_IAccountService>(),c.Resolve<YP_ITokenService>())).AsWebApiActionFilterFor<ApiControllerBase>().InstancePerApiRequest();
           // builder.Register(c => new UnitOfWorkFilterAttribute(c.Resolve<IUnitOfWork>())).AsWebApiActionFilterFor<ApiControllerBase>().InstancePerApiRequest();
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
            builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
            builder.RegisterWebApiFilterProvider(config);
            builder.Update(container);

这样设置为了每一个响应的请求都能拦截,然后执行指定的方法。

HttpContext.Current.Request.Headers.Authorization  //获取的信息为'Bearer ' +token

HttpContext.Current.Request.Headers.Authorization.Parameter //为token   //其中vue是不能设置Parameter 的所以需要'Bearer ' 加一个空格。

 

这里有个坑就是 关于http的传输协议。

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智慧方

开发程序不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值