jQuery、ajaxPrefilter统一设置根路径

314 阅读1分钟

统一配置根路径、访问权限及未登录通过路径访问权限页面

// !#注意:每次调用$.get()、$.post()、$.ajax()的时候,会先调用$.ajaxPrefilter()这个函数

// 在这个函数,可以拿到我们给ajax配置的对象
$.ajaxPrefilter(function (options) {
  // console.log(options);//跳转的地址
  
  // 1在发起真正的Ajax请求之前,拼接请求的根路径
  options.url = '根地址' + options.url

  //2、统一为有权限(/my)的接口,设置headers请求头
  if (options.url.indexOf('/my/') !== -1) {
    options.headers = {
      Authorization: localStorage.getItem('token') || '',
    }
  }


  // 3、全局统一挂载complate回调函数,禁止用户未登录清空下,用路径直接访问
  
  options.complete= function (res) {
    // console.log(res)
    if (
      res.responseJSON.status === 1 &&
      res.responseJSON.message === '身份认证失败!'
    ) {
      // 清空token,强制跳转登录页面,禁止未登录无token访问
      localStorage.removeItem('token')
      location.href = '/login.html'
    }
  }
})

注意:若有发起请求的页面,需要在HTML中引入上述文件