如何给JQ的ajax方法中的success()传入参数?
当时在使用JQuery提供的Ajax技术的时候,我有个需求,就是要给它请求成功后调用的success()方法传入参数;
所以,我就直接这样子写了:
<script>
function getTypeList(name){
$.ajax({
url : '<c:url value="admin/type_loadTypeList.action"/>',
type : 'get',
contentType : "text/html;charset=utf-8",
dataType : 'json',
success : function(data,name) {
alert(name);//查看name的值
mycallback(data,name);//回调函数
}
});
}
</script>
当时我传入name="Java"。
当我运行后,alert(name)返回的值却是“success”!!
怎么回事呢?
原来success: function(data,name)是Ajax在请求成功后自动调用的,所以这个方法是Ajax调用的,那么该方法的参数(data,name)便是Ajax提供的了。(js学的差了点,所以当时脑子没转过来)
其中function(data,name)的参数data是客户端请求后台,由后台返回的值。
参数name这是个比较特殊的参数名,因为刚刚好在Ajax中有个参数名也叫name,所以,Ajax就以为你是要它把它自己的参数name传进去。该name的值却刚好是"success";
如果你把function(data,name)的参数name改为其它的话,那么就不会返回为"success",而是返回为空字符串了。(当然还有可能你取了跟Ajax内部其它的参数名相同的名字,那么返回便是Ajax的参数的参数值了)
==============================解决================
那么问题来了:
给function()传入的参数名跟Ajax的参数名相同就会返回Ajax的参数值,这不是我们想要的。
但是,你穿入的参数名跟Ajax的参数名不同,就会找不到该参数值,这也不是我们想要的;(因为这个方法是由Ajax来调用,如果Ajax没有该参数,那么该参数就为空)
那么该怎么办呢?
其实,我们并不需要传入参数,直接在把name参数传给mybackdata(data,name),而不需要通过function()来传递。(此处的name参数是指getTypeList(name)中的name参数)
代码如下:
function getTypeList(name){
$.ajax({
url : '<c:url value="admin/type_loadTypeList.action"/>',
type : 'get',
contentType : "text/html;charset=utf-8",
dataType : 'json',
success : function(data) {
mycallback(data,name);
}
});
}
总结:
Ajax的请求成功调用的方法中的参数是由Ajax负责传递。
本人文笔写的不太好,希望各位大牛多多点评指点。。
如何给JQ的ajax方法中的success()传入参数?的更多相关文章
- 在jquery的ajax方法中的success中使用return要注意的问题
jquery的ajax方法:在success中使用return:来结束程序的时候,结束的只是success这个方法,也就是说success中的return的作用范围只是success: 如果要想在su ...
- jQuery.ajax()方法中參数具体解析
前言 在项目开发中,为了实现异步向服务端发起请求,最常常使用的就是jQuery.ajax方法了.刚開始需求比較简单,调用jQuery.ajax方法时要传的參数也就那几个常见的參数:url/data/d ...
- 【转】Ext.ajax.request 中的success和failure
原文链接:Ext.ajax.request 中的success和failure Ajax request对象的success事件表示request过程中没有发生错误,和自己的业务逻辑无关, 如果访问不 ...
- InvocationHandler中invoke方法中的第一个参数proxy的用途
最近在研究Java的动态代理时对InvocationHandler中invoke方法中的第一个参数一直不理解它的用处,某度搜索也搜不出结果,最后终于在stackoverflow上找到了答案. 这是原文 ...
- JQ之$.ajax()方法以及ajax跨域请求
AJAX(Asynchronous javascript AND xml :异步javascript和xml):是一种创建交互式网页应用的网页开发技术.AJAX可以在不重新加载整个页面的情况下与服务器 ...
- jq的ajax方法
相较与js异步对象的繁琐,jq的ajax对象结构更加清晰 一:ajax对象简述 ajax(Asynchronous JavaScript and XML),异步的xml和js对象,主要用于在不刷新全局 ...
- $.ajax({})方法中的回调函数beforeSend,success,complete,error使用示例
在与后台交互的时候,经常使用到jquery的$.ajax()方法来请求数据.回调函数用的比较多的是success,但是beforeSend.complete.error函数也是很有用的.下面是使用例子 ...
- rails中weill_paginate的paginate方法中不能使用额外参数的解决办法
我们知道高版本中的rails中的分页功能已经放在will_paginate这个gem中,我们在控制器方法中往往需要调用其paginate方法来实现分页数据集控制,举个例子:正常的情况我们想要每页显示1 ...
- java方法中增加不固定参数
JDK1.5以上支持 一.定义方法 有时方法的参数个数不固定,可以使用...来省略个数,使用时直接遍历即可,例如下面的方法 public class hi { public void print(St ...
随机推荐
- kvm搭建完成了,那么问题来了,到底是什么原理
kvm中到底是怎么模拟的CPU和内存? 收到了大量的 这里有一个裸的调用kvm接口的实例,超赞: http://www.cnblogs.com/Bozh/p/5753379.html 使用kvm的AP ...
- 第十二篇:HTML基础
本篇内容 HTML概述 HTML常用基本标签 CSS格式引入 一. HTML概述 1.定义: HTML,超文本标记语言,写给浏览器的语言,目前网络上应用最广泛的语言.HTML也在不断的更新,最新版本已 ...
- hdu 1811 Rank of Tetris (拓扑 & 并查集)
Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- [洛谷P3810]【模板】三维偏序(陌上花开)
题目大意:有$n$个元素,第$i$个元素有三个属性$a_i,b_i,c_i$,设$f(i)=\sum\limits_{i\not = j}[a_j\leqslant a_i,b_j\leqslant ...
- Swift中由找不到removeAll(where:)方法引起的连锁反应(上)
核心代码 section.removeAll {baseRow in if let habitRow = baseRow as? HabitRow{ let idxPath = habitRow.in ...
- [bzoj] 3343 教主的魔法 || 带修改分块
原题 长度为n的序列,有两种操作: 1.[l,r]区间每个数+w 2.询问[l,r]区间有多少个数>c 记录lazy数组即可. #include<cstdio> #include&l ...
- HDU 4746 HDOJ Mophues 2013杭州网赛I题
比赛的时候就预感到这题能出,但是会耗时比较多.结果最后是出了,但是有更简单的题没出. 是不是错误的决策呢?谁知道呢 题目意思: 定义f(x) = x分解质因数出来的因子个数 如 x = p0 * p0 ...
- POJ2187 旋转卡壳 求最长直径
给定平面上的一些散点集,求最远两点距离的平方值. 题解: 旋转卡壳求出凸包,然后根据单调性,求出最远两点的最大距离 #pragma GCC optimize(2) #pragma G++ optimi ...
- java 复习整理(五 类加载机制与对象初始化)
类加载机制与对象初始化 一 . 类加载机制 类加载机制是指.class文件加载到jvm并形成Class对象的机制.之后应用可对Class对象进行实例化并调用.类加载机制可在运行时动态加载外部的类, ...
- CodeForces Round #403 (Div.2) A-F
精神不佳,选择了在场外同步划水 没想到实际做起来手感还好,早知道就报名了…… 该打 未完待续233 A. Andryusha and Socks 模拟,模拟大法好.注意每次是先判断完能不能收进柜子,再 ...