如何给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 ...
随机推荐
- 关系、关系模式、关系模型blablabla...
好久没碰<数据库系统概论>了,最近翻了翻发现好多专业名词都忘记了, 现在有空特地记录下. 名词解释 数据:数据就是数据库中存储的基本数据,比如学生的学号.学生的班级数据库:存放数据的仓库数 ...
- hdu 2899 Strange fuction (二分法)
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 通过CLI命令将ESXi主机进入维护模式
将主机置于维护模式# vimsh -n -e /hostsvc/maintenance_mode_enter # vim-cmd /hostsvc/maintenance_mode_enter 退出维 ...
- Linux装软件
一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...
- Bzoj1407 Savage
Description Input 第1行为一个整数N(1<=N<=15),即 野人的数目.第2行到第N+1每行为三个整数Ci, Pi, Li (1<=Ci,Pi<=100, ...
- POJ1163 The Triangle
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44997 Accepted: 27174 Description 73 ...
- 记录string的妙用
P1106 删数问题 摘要 --> 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的 ...
- [ CodeVS冲杯之路 ] P3145
不充钱,你怎么AC? 题目:http://codevs.cn/problem/3145/ 经典的汉诺塔问题 我们移动的时候,如果是最小的1号就可以直接移动,否则先将上面的x-1号先移动到借用塔上,然 ...
- Spring3.2+Struts2.3+Mybatis3.2整合使用(注解使用)
0.包结构:
- mysql故障(找不mysql命令)
[root@slave support-files]# mysql -uroot -p123-bash: mysql: command not found #我的mysql编译安装指定的路径是--ba ...