关于ajax提交的公共接口的一大用处
在项目框架搭建的时候,就写了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));
关于ajax提交的公共接口的一大用处的更多相关文章
- 判断手机端用户打开页面时是android还是ios,并将判断结果通过ajax返回给url接口,传递回去
首先判断页面是android还是ios,然后利用ajax将结果通过接口url返回回去,记录到log日志中,以统计android和ios用户访问该页面的数量(数据统计) <script type= ...
- Django之Ajax提交
Ajax 提交数据,页面不刷新 Ajax要引入jQuery Django之Ajax提交 Js实现页面的跳转: location.href = "/url/" $ajax({ url ...
- Vue-CLI项目-axios模块前后端交互(类似ajax提交)
08.31自我总结 Vue-CLI项目-axios前后端交互 一.模块的安装 npm install axios --save #--save可以不用写 二.配置main.js import axio ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
- Ajax 提交KindEditor的数据
这次我是在EasyUI中使用了KindEditor的编辑器,按照官方给的代码,总是无法获取编辑器里面的值(内容),如下: KindEditor.ready(function (K) { ...
- jquery实现ajax提交表单信息
最近在思考优化项目,想自己扩展一个jquery自动获取表单中的数据进行ajax提交.本人没有完整性学习jquery,基本上是现学现找,有点困难. 主要是扩展和拼接json转对象 很简单,附上代码: ; ...
- ajax提交form表单
1. ajax提交form表单和不同的form表单的提交主要区别在于,ajax提交表单是异步提交的,而普通的是同步提交的表单. 2. from视图部分 <form id="loginF ...
- 【ajax 提交表单】多种方式的注意事项
在业务中,可能因为表单内容过于庞大,字段过于繁杂,如果人为去拼接的话 ,需要耗费大量的时间和精力,与此同时,代码看上去也是冗余不堪. 所以,提交表单的时候如果能整个表单数据整体提交,那是非常开心的事情 ...
- Ajax提交参数的值中带有html标签不能提交成功的解决办法(ASP.NET)
最近在公司做资源及文章上传功能遇到一个小问题,被坑了好半天. 该功能就类似利用富文本编辑器发布信息,但是用Ajax提交数据,因此提交参数值中不可避免的含有html标签. 在本地运行代码一直没问题,总是 ...
随机推荐
- OpenCV——视频颜色识别
#include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace c ...
- Python学习笔记1(基础语法)
1.Python的文件类型: 源代码:扩展名以py结尾.python写的程序不需要编译成二进制代码,可以直接运行.pyw是Windows下开发图形界面的源文件. 字节代码:扩展名以pyc结尾,是编译过 ...
- Lucene学习总结之三:Lucene的索引文件格式(1)
Lucene的索引里面存了些什么,如何存放的,也即Lucene的索引文件格式,是读懂Lucene源代码的一把钥匙. 当我们真正进入到Lucene源代码之中的时候,我们会发现: Lucene的索引过程, ...
- Java 一个字符串在另外一个字符串出现次数
统计一个字符串在另外一个字符串出现次数 代码如下: package me.chunsheng.javatest; import java.util.regex.Matcher; import java ...
- [C++程序设计]用指向数组的指针作函数参数
#include <iostream> using namespace std; int main() { ]); ][]={,,,,,,,,,,,}; output(a); ; } ]) ...
- 小希的迷宫(HDU 1272 并查集判断生成树)
小希的迷宫 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- ubuntu下安装fiddler
因为工作中需要用到fiddler工具 现在工作环境迁移到ubuntu14 下 发现fiddler只支持windows网上也有很多推荐 号称可以代替fiddler 但因为功能使用上比较习惯 并 ...
- 禁用物料不允许BOM
应用 Oracle Bill Of Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...
- scrollbarsstyle
android:scrollbarStyle属性及滚动条和分割线覆盖问题 本文主要介绍android view的android:scrollbarStyle属性意义android:scrollbarS ...
- Android 匿名共享内存Java接口分析
在Android 匿名共享内存驱动源码分析中介绍了匿名共享内存的驱动实现过程,本文在Android匿名共享内存驱动基础上,介绍Android匿名共享内存对外Android系统的匿名共享内存子系统的主体 ...