使用es6的then()方法封装jquery的ajax请求
使用场景:
jsp页面中使用jquery的ajax请求比较频繁,以前vue框架的项目用过axios,所以就想着用then()封装一个公共请求的方法,这样每次请求就不用那么麻烦的写一大堆请求参数了。
示例代码:
/**
* 封装请求方法
* @param {Object} url 接口请求地址
* @param {Object} data 接口请求参数(无需请求方式参数,则此项可以为空,否则必须传)
* @param {Object} params 请求方式参数(可以为空)
*/
function ajax(url, data, params) {
return new Promise(function(resolve, reject) {
$.ajax({
url: "<{$params['wap_url']}>" + url,
type: params && params.type || 'post',
dataType: params && params.dataType || 'JSON',
data: data,
success: function(res) {
resolve(res)
},
error: function(res) {
alert(res.m)
}
});
}); }
//引用方法
var params={
goods_id:""
}
this.ajax("package/goodslist",params).then(function(data){
console.log(data)
})
代码解析:
如上,ajax请求的具体请求在封装的方法中进行处理并返回响应数据,调用方法只需要传入接口地址、请求参数就可以了。
如果需要使用其他的请求方式,则通过 params 参数传入预置的 type 和 dataType。
如果需要设置其他的请求参数,则直接对封装方法中扩展就可以了 。
注意事项:
1. 本例只是根据当前需求进行了简单的封装,可以根据自己的需要进行调整。
2. 调用封装好的请求方法必须传入url参数,如果ajax请求的配置参数不需要额外设置的话,则接口请求参数可以不传,如:
this.ajax("package/goodslist").then(function(data){
console.log("ddd,",data)
})
但是,如果ajax请求的配置参数需要配置,则接口参数即使没有,也得传个空值过去,如:
this.ajax("package/goodslist","",{type:"get"}).then(function(data){
console.log("ddd,",data)
})
当然你可以尝试使用es6的解构赋值进行传参。
使用es6的then()方法封装jquery的ajax请求的更多相关文章
- Jquery 页面初始化常用的三种方法以及Jquery 发送ajax 请求
第一种 $(document).ready(function(){ //文档就绪事件 }); 第二种是第一种的简略写法,效果上和第一种是等效的. $(function(){ //文档加载事件,整个文档 ...
- Ajax请求(二)--JQuery的Ajax请求方法
JQuery库的Ajax请求的几种方法: 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. 参数含义: url (String ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- 【jquery】ajax 请求成功后新开窗口被拦截解决方法
问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以 ...
- Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)
1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...
- Struts2处理(jQuery)Ajax请求
1. Ajax Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)时一种创建交互式网页应用的网页开发技术,它并不是一项新的技术,其产生 ...
- Servlet处理(jQuery)Ajax请求
1. jQuery jQuery是一个JavaScript函数库,极大的简化了JavaScript编程,很容易学习.jQuery是目前最流行的开源js框架,并且提供了大量的扩展. 2. Aja ...
- 学习AJAX必知必会(4)~JQuery发送Ajax请求
一.JQuery发送Ajax请求 ■ 对于get和post请求,jQuery内部封装了Ajax请求的4个步骤和数据格式的设置 ■ 对于Ajax通用请求,jQuery内部封装了Ajax请求的4个步骤和数 ...
- JQuery发送ajax请求不能用数组作为参数
JQuery发送ajax请求不能用数组作为参数,否则会接收不到参数, 一.js代码如下: $('#delete-button').click(function(){ var select ...
随机推荐
- C# 数据库
连接: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...
- 测试网站nginx是否支持tls1.2的命令行
[root@~]# nmap --script ssl-enum-ciphers -p 443 www.想休息.cn Starting Nmap 5.51 ( http://nmap.org ) at ...
- RDO快速部署OpenStack
RDO快速部署OpenStack 1.RDO是什么 RDO是红帽Red Hat Enterprise Linux OpenStack Platform的社区版,类似RHEL和Fedora,RHEV和o ...
- 强制找回gitlab管理员密码
强制找回gitlab管理员密码 最近使用gitlab的时候发现管理员密码忘记,现将找回密码的操作过程记录下来. 1.在gitlab登录窗口 如果密码忘记了登录不进入,可以先尝试点击登录框下方的Forg ...
- [zz] MATLAB工具箱介绍
http://blog.sina.com.cn/s/blog_57235cc701012kfb.html Toolbox工具箱 序号 工具箱 备注 数学.统计与优化 1 Symbolic Ma ...
- 自己遇到的ajax调用ashx文件无法获取返回值的一种情况
无法获取返回值的ashx文件大致如下: public void ProcessRequest (HttpContext context) { context.Response.ContentType ...
- [UE4]Background Blur,背景模糊
一.Blur Strength:模糊强度 二.背景是模糊的,在Background Blur前面的控件二不会模糊. 三.可以调整顺序,让按钮也模糊.然后按钮被模糊了,但是按钮还可以被点击的,Backg ...
- android ButterKnife 点击事件没反应的解决方案
可能只添加了 implementation 'com.jakewharton:butterknife:8.8.1'而没有添加下面这行 annotationProcessor 'com.jakewhar ...
- 论气机之"左升右降"
生命现象源于气机的出入升降运动. “出入废则神机化灭,升降息则气立孤危.故非出入,则无以生长壮老已:非升降,则无以生长化收藏”(<素问·六微旨大论>),升降是气机主要的运动形式之一,是 ...
- systemverilog assertion
1.一般是单独写一个module 里面放assertion, 然后在验证平台顶层和RTL的实例化bind起来 2. |->表示直接进行判断,|=>表示下一拍判断,一般一个断言最好只写一 ...