当前位置: 首页 > 编程笔记 >

封装了jQuery的Ajax请求全局配置

莘聪
2023-03-14
本文向大家介绍封装了jQuery的Ajax请求全局配置,包括了封装了jQuery的Ajax请求全局配置的使用技巧和注意事项,需要的朋友参考一下

摘要:

  jQuery已经成为项目中最常见的js库,也是前端开发最喜欢使用的库。下面是在项目中封装了jQuery的Ajax,分享给大家。

代码


// ajax 请求参数

var ajaxSettings = function(opt) {

    var url = opt.url;

    var href = location.href;

    // 判断是否跨域请求

    var requestType = 'jsonp';

    if (url.indexOf(location.host) > -1)

        requestType = 'json';

    requestType = opt.dataType || requestType;

    // 是否异步请求

    var async = (opt.async === undefined ? true : opt.async);

    return {

        url: url,

        async: async,

        type: opt.type || 'get',

        dataType: requestType,

        cache: false,

        data: opt.data,

        success: function(data, textStatus, xhr) {

            /*

            *如果dataType是json,怎判断返回数据是否为json格式,如果不是进行转换

            * 成功数据通用格式

            *   {

            *       "code": 200,

            *       "data": [], 

            *       "success": true // 成功

            *   }

            *   失败返回的数据

            *   {

            *       "code": 200, 

            *       "info": 'error', 

            *       "success": false // 失败

            *   }

             */

            if((requestType === 'json' || requestType === "jsonp") && typeof(data) === "string") {

                data = JSON.parse(data);

            }

            if(data.success) {

                opt.success(data);

            }

            if(opt.error) {                 opt.error(data);             }

        },         error: function(xhr, status, handler) {             if (opt.error)                 opt.error();         }     }; }; function unescapeEntity(str) {     var reg = /&(?:nbsp|#160|lt|#60|gt|62|amp|#38|quot|#34|cent|#162|pound|#163|yen|#165|euro|#8364|sect|#167|copy|#169|reg|#174|trade|#8482|times|#215|divide|#247);/g,         entity = {         '&nbsp;'   : ' ',         '&#160;'   : ' ',         '&lt;'     : '<',         '&#60;'    : '<',         '&gt;'     : '>',         '&62;'     : '>',         '&amp;'    : '&',         '&#38;'    : '&',         '&quot;'   : '"',         '&#34;'    : '"',         '&cent;'   : '¢',         '&#162;'   : '¢',         '&pound;'  : '£',         '&#163;'   : '£',         '&yen;'    : '¥',         '&#165;'   : '¥',         '&euro;'   : '',         '&#8364;'  : '',         '&sect;'   : '§',         '&#167;'   : '§',         '&copy;'   : '©',         '&#169;'   : '©',         '&reg;'    : '®',         '&#174;'   : '®',         '&trade;'  : '™',         '&#8482;'  : '™',         '&times;'  : '×',         '&#215;'   : '×',         '&divide;' : '÷',         '&#247;'   : '÷'     };     if (str === null) {         return '';     }     str = str.toString();     return str.indexOf(';') < 0 ? str : str.replace(reg, function(chars) {         return entity[chars];     }); } // 转换html的实体 $.ajaxSetup({     global     : true,     cache      : false,     converters : {         'text json' : function(response){             return jQuery.parseJSON(unescapeEntity(response));         }     } }); /* *Ajax 请求权限异常 *   用户权限错误跳转登陆页 *   404错误跳转404页面  */ $(document).ajaxComplete(function(evt, req, settings){     if(req && req.responseJSON){         var json = req.responseJSON;         if(json.code === 403 && json.info === 'perm error' && !json.success){             window.location.href = location.protocol + '//' + location.hostname;             return;         }         if(json.code === 404 && !json.success) {             window.location.href = location.protocol + '//' + location.hostname + '/404.html';         }     } }); /* *Ajax 请求错误提示 *例如:500错误 *返回错误信息格式 *{ *   code: 500, *   info: 系统发生异常 *}  */ $(document).ajaxError(function(evt, req, settings){     if(req && (req.status === 200||req.status === 0)){ return false; }     var msg = '错误:';     if(req && req.responseJSON){         var json = req.responseJSON;         msg += json.code||'';         msg += json.info||'系统异常,请重试';     }else{         msg = '系统异常,请重试';     }     alert(msg); });

小结:

  在执行Ajax请求时只需要调用ajaxSettings函数即可,如下:


$.ajax(ajaxSettings({

    url: '',

    data: ''

}))

以上所述就是本文的全部内容了,希望大家能够喜欢。

 类似资料:
  • 本文向大家介绍详解JavaScript原生封装ajax请求和Jquery中的ajax请求,包括了详解JavaScript原生封装ajax请求和Jquery中的ajax请求的使用技巧和注意事项,需要的朋友参考一下 前言:ajax的神奇之处在于JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果。Ajax 在浏览器与 Web 服务器

  • 本文向大家介绍jquery Ajax 全局调用封装实例详解,包括了jquery Ajax 全局调用封装实例详解的使用技巧和注意事项,需要的朋友参考一下 前言: 有一种情况:全站都要用异步方式来调用 数据,提交数据,那么你每次操作 都会要$.ajax({.....}) 写重复的方法 和代码,冗余太大, 也浪费时间,虽说你有代码自动提示补全,但真的不优雅,身为前端极客,是不能允许的! 【嘿嘿!虽说我现

  • 本文向大家介绍关于ajax网络请求的封装实例,包括了关于ajax网络请求的封装实例的使用技巧和注意事项,需要的朋友参考一下 实例代码: 以上这篇关于ajax网络请求的封装实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我在处理ajax请求时遇到麻烦。我遇到了错误 所以我尝试的是这个jQuery ajax请求: 但是它仍然无法正常工作。我仍然遇到错误。 我该如何解决? 问题答案: 这很容易,您应该首先设置服务器http响应标头。 问题不在于您的前端javascript代码。 您需要返回此标头: 要么 在Apache配置文件中,代码如下: 在nodejs中,代码是这样的:

  • 本文向大家介绍基于jQuery的ajax方法封装,包括了基于jQuery的ajax方法封装的使用技巧和注意事项,需要的朋友参考一下 ajax (ajax开发)简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。

  • 问题内容: 注意 :我粘贴的代码不仅仅是ajax调用,以免代码是(导致)问题的一部分。但是,我认为并不是这样,因此您最好将注意力集中在和功能上。 还要注意,由于对此问题有一个评论(带有否决权),说我的代码很难解密,所以我很乐意澄清需要澄清的内容,如果这可以证明是找到问题的关键。 谢谢。 就是这个 我正在尝试抛弃jQuery,因为我唯一使用的是方法,而包括jQuery之类的整个库仅具有一项功能就令I