如何给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 ...
随机推荐
- web服务器集群session同步
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...
- P4113 [HEOI2012]采花
题目描述 萧薰儿是古国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花. 花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于 ...
- poj 1390 区间dp
Blocks Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5035 Accepted: 2065 Descriptio ...
- Java面试题之hashmap中用什么hash算法解决碰撞的?
查了一下源码(jdk8),记录一下吧,能记住就记一下吧! static final int hash(Object key) { int h; return (key == null) ? 0 : ( ...
- AngularJS中获取ng-repeat动态生成的ng-model值
需求:通过ng-repeat动态生成的CheckBox,实现勾选控制对应的批次号.如图: html: <div class="clearfix"> <div cl ...
- Mysql 索引原理(转自:张洋)
摘要 本文以MySQL数据库为 研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据 库支持多种索引类型,如 ...
- HDU 1171Big Event in HDU(转01背包)
题意: 给你一组数,分成差距最小的两份A,B(A>=B) 分析: 转01背包 注意: 01背包用一维数组 不要用二维 二维数组若是开太大,内存超限,开太小,RE #include "c ...
- Autotools Mythbuster
Preface Diego Elio "Flameeyes" Pettenò Author and Publisher <flameeyes@flameeyes.eu> ...
- 資料視覺化:使用Python與JavaScript 简介和目录
內容簡介 學習如何運用Python與JavaScript這組對超級強大的組合,處理手中的原始資料,建構出功能強大的互動式視覺化網站.在這一本以實務為主的書中,將告訴您如何善用Python和JavaSc ...
- resin启动问题
启动resin时报错如下: Resin/4.0.28 can't restart -server 'app-0'. com.caucho.bam.RemoteConnectionFailedExcep ...