博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于ajax提交的公共接口的一大用处
阅读量:4979 次
发布时间:2019-06-12

本文共 2694 字,大约阅读时间需要 8 分钟。

在项目框架搭建的时候,就写了ajax提交的公共接口,是想统一的日志和处理ajax返回的错误信息。

今天,却又帮我解决了另外一个问题:每次点开某个页面,有一个ajax请求总是会调用两次,于是打开chrome调试器,在公共的ajax提交的地方打上断点,查看chrome的Call Stack,很容易就找到两次调用的源头所在,问题瞬间解决。

贴一下我的util.js:

 

/*! * 前端js公用方法插件 * Copyright 2011-2015 zhangjh. * Licensed under MIT (https://github.com/firebata/skysport/blob/master/LICENSE) */(function ($) {    "use strict";    //扩展常用方法    $.extend({        sendRestFulAjax: sendRestFulAjax,//ajax        sendJsonAjax:sendJsonAjax,        strToJson: strToJson,//&连接字符串转json对象        strIsEmpty: strIsEmpty,//判断字符串为空        strIsNotEmpty: strIsNotEmpty//判断字符串不为空    });    /**     *     * @param _url 路径     * @param _data 数据     * @param _type HTTP方法     * @param _dataType 数据类型     * @param _doSuccess 成功回调函数     */    function sendRestFulAjax(_url, _data, _type, _dataType, _doSuccess) {        var type = strIsEmpty(_type) ? 'POST' : _type;        //var dataType = _type == "undefined" || $.trim(_dataType) == '' ? 'json' : _dataType;        var sf = strIsEmpty(_doSuccess) ? doSucess : _doSuccess;        $.ajax({            url: _url,            data: _data,            type: type,            //dataType: dataType,            success: sf,            error: doNotSucess        });    }    /**     *     * @param _url 路径     * @param _data 数据     * @param _type HTTP方法     * @param _dataType 数据类型     * @param _doSuccess 成功回调函数     */    function sendJsonAjax(_url, _data,  _doSuccess) {        var sf = strIsEmpty(_doSuccess) ? doSucess : _doSuccess;        $.ajax({            url: _url,            data: JSON.stringify(_data),            type: "POST",            dataType: "json",            contentType: "application/json",            success: sf,            error: doNotSucess        });    }    /*bootbox.setLocale("zh_CN");*/    var doNotSucess = function (XMLHttpRequest, textStatus, errorThrown) {        //console.error(XMLHttpRequest);        bootbox.alert("本次操作失败.");    }    var doSucess = function (XMLHttpRequest, textStatus, errorThrown) {        //bootbox.alert(XMLHttpRequest);    }    /**     * 将“&”连接的字符串转换成Json     * @param str “&”连接的字符串     * @returns {Object}  Json     */    function strToJson(str) {        str = str.replace(/&/g, "','");        str = str.replace(/=/g, "':'");        str = "({'" + str + "'})";        var obj = eval(str);        return obj;    }    /**     * 校验字符串为空     * @param input 字符串     * @returns {boolean}     */    function strIsEmpty(input) {        return input == undefined || $.trim(input) == ''    }    /**     * 校验字符串不为空     * @param input 字符串     * @returns {boolean}     */    function strIsNotEmpty(input) {        return !strIsEmpty(input);    }}(jQuery));

 

转载于:https://www.cnblogs.com/firebata/p/4680697.html

你可能感兴趣的文章
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>
js中escape,encodeURI,encodeURIComponent 区别(转)
查看>>
sass学习笔记-安装
查看>>
Flask (二) cookie 与 session 模型
查看>>
修改添加网址的教程文件名
查看>>
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
裁剪图片
查看>>
数据结构实习 problem L 由二叉树的中序层序重建二叉树
查看>>
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>
设置PL/SQL 快捷键
查看>>
个人阅读作业7
查看>>
转载:深入浅出Zookeeper
查看>>
GMA Round 1 新程序
查看>>
node anyproxy ssi简易支持
查看>>
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
查看>>
PHP函数 ------ ctype_alnum
查看>>