ajax禁止缓存,数据预处理

    webapp像安卓IOS应用一样调用接口,使用ajax进行。

    ajax针对get请求会有缓存,缓存会导致二次之后的调用不会获取新数据。

    API返回数据具有固定的格式,数据部分只是返回数据的一部分。而固定的数据格式导致每个业务都要写数据格式解析,冗余代码太多,不方便日后的维护工作。

    Jquery只是运行在浏览器智商的脚本程序而已,浏览器并没有向jquery开放修改ajax访问机制的权限。jquery其实也只是耍了一个小聪明,在URL拼上一个随机参数,让每次的请求URL不一样,从而让浏览器认为是不同的请求,从而跳过了缓存机制。

    下面是解决以上两个问题的JS代码:

    $.ajaxSetup({
cache:false,
dataFilter: function(data) {
  var json = {};
  try{
  json = JSON.parse(data);
  }catch(e){
  //不符合json格式原样返回
  console.log("数据不是json格式");
  return data;
  }
  if(json==null || json.code == null){
  return data;
  }
  if(json.code != 0){
  console.error("api调用报错:" + json.msg);
  console.log(json);
  return "x"; //破坏json格式导致done方法不执行
  }
  if(json.data == null){
  json.data = {};
  }
  return JSON.stringify(json.data);
     }
});

    下面是API规定的基本数据格式。

    {
"msg": "code不是0时使用",
"code": 0,
"data": { "value":19999}
}
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Ajax拦截器是用于截取和处理Ajax请求的工具。它可以在前端发送Ajax请求之前或收到服务器响应之后进行拦截和处理。使用拦截器可以在请求被发送到服务器之前对请求进行修改或添加一些通用参数,也可以在收到服务器响应之后对响应进行统一处理。 拦截器通常用于以下几个方面: 1. 请求拦截:可以在发送请求之前对请求进行拦截,用于添加一些公共的请求头、参数或进行权限验证等操作。例如,可以在每个Ajax请求中添加token作为身份验证的凭证。 2. 响应拦截:可以在接收到服务器响应之后对响应进行拦截,用于处理通用的响应错误、格式化数据等操作。例如,可以在每个请求完成后检查响应状态码,如果返回的状态码是401,则表示用户未授权,可以跳转到登录页面。 3. 错误处理:可以对请求过程中出现的错误进行处理和统一的错误提示。例如,可以在请求超时或网络错误时弹出提示框提示用户。 通过拦截器,我们可以在不修改每个请求代码的情况下实现统一的请求、响应处理和错误处理逻辑,提高代码的可维护性和复用性。拦截器可以很好地与Ajax库(如axios)配合使用,让我们更方便地管理和控制Ajax请求。 ### 回答2: Ajax拦截器是一个用于拦截和处理Ajax请求的工具。在前端开发中,我们使用Ajax来发送异步请求,与后端服务器进行数据交互。但有时候我们需要在请求发送前或者响应返回后做一些统一的处理操作,比如添加请求头、处理错误信息等。这时候就可以使用Ajax拦截器来统一处理这些操作。 使用Ajax拦截器可以实现以下功能: 1. 添加请求头:可以在请求发送前,通过Ajax拦截器在请求中添加一些自定义的请求头信息,比如认证信息、版本号等。 2. 处理错误信息:可以在响应返回后,通过Ajax拦截器对错误信息进行统一处理,比如弹出错误提示框或者记录错误日志。 3. 统一loading状态:可以在请求发送前添加loading状态,使得用户在等待请求完成时能够得到一种反馈。请求返回后,可以通过Ajax拦截器关闭loading状态。 4. 请求重试:可以通过Ajax拦截器实现请求的重试机制,当请求失败时可以自动重新发送请求。 5. 刷新token:在前后端分离的项目中,为了安全性和防止用户登录失效,往往会使用token进行身份验证。当token过期时,可以通过Ajax拦截器检测到响应返回的错误信息,然后进行token刷新操作,使得用户能够继续使用系统。 总而言之,Ajax拦截器能够在前端开发中实现一些针对Ajax请求的统一处理操作,提高开发效率和代码的可维护性。 ### 回答3: Ajax拦截器是一种用于拦截和处理 Ajax 请求的技术。它允许开发人员在发送和接收 Ajax 请求之前或之后执行自定义的处理逻辑。 Ajax拦截器可以用于多种用途,例如: 1. API授权和认证:通过拦截请求,可以在发送请求之前添加必要的认证参数或令牌,并在接收响应时验证响应的完整性和合法性。 2. 请求和响应的预处理:通过拦截请求,可以在发送请求之前对请求的参数进行转换或校验,并在接收响应时对响应进行统一的处理和格式化,以便更好地集中管理和调试。 3. 错误处理和异常捕获:通过拦截请求,可以捕获所有发送或接收过程中产生的异常或错误,并统一处理,方便进行错误日志记录或友好的用户提示。 4. 请求重试和超时处理:通过拦截请求,可以在请求失败或超时时进行重新发送或处理,以增加请求的稳定性和可靠性。 5. 请求拦截和过滤:通过拦截请求,可以根据特定的业务需求对请求进行拦截和过滤,例如对特定的请求进行缓存、变更或屏蔽等处理。 总之,Ajax拦截器可以方便地对 Ajax 请求进行拦截、处理和管理,提供了良好的灵活性和扩展性,使得开发人员可以更好地掌控和管理 Ajax 请求的行为,同时提高了系统的可维护性和安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值