jq AJAX拦截器

2019-11-05  本文已影响0人  七號7777

参考文档:
https://www.cnblogs.com/Johnny_Z/archive/2012/06/17/2552609.html

使用jQuery的$.ajaxSetup方法可以设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数,以及各种相同结果的处理。

需要注意的是用.ajaxSetup函数所设置的默认值不会应用到load()命令上。对于实用工具函数,如.get()和.post(),其HTTP方法不会因为使用这些默认值而被覆盖。设置GET的默认类型不会导致.post()使用HTTP的GET方法。

<body>
    <select id="selectNum">
  <option value="0">--Select--</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
    </select>
    <div id="show">
    </div>
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function () {
  var show = $('#show');
  $('#selectNum').change(function () {
    var idValue = $(this).val();
    $.get('Server.aspx', { id: idValue }, function (data) { show.append(data+'<br/>'); });
  });
  $.ajaxSetup({
    timeout: 3000,
    dataType: 'html',
    //请求成功后触发
    success: function (data) { show.append('success invoke!' + data + '<br/>'); },
    //请求失败遇到异常触发
    error: function (xhr, status, e) { show.append('error invoke! status:' + status+'<br/>'); },
    //完成请求后触发。即在success或error触发后触发
    complete: function (xhr, status) { show.append('complete invoke! status:' + status+'<br/>'); },
    //发送请求前触发
    beforeSend: function (xhr) {
    //可以设置自定义标头
    xhr.setRequestHeader('Content-Type', 'application/xml;charset=utf-8');
    show.append('beforeSend invoke!' +'<br/>');
    },
  })
})
</script>
</body>

也就是调用接口都会执行ajaxSetup里面的东西,可以在ajaxSetup做相应的操作处理
注意:
ajax拦截器使用之后,用表单形式提交数据会对结果产生影响,返回的结果会变成json的字符串,所以需要做相应处理

上一篇 下一篇

猜你喜欢

热点阅读