ajax返回值给js变量

stone_lee 2010-03-15 12:54:42
我希望调用jquery一个ajax然后给js变量返回,具体如下
function UTF8TOGBK(word) {
var tt;
$.ajax({url: 'covUTF8ToGBK.action?word='+word,type: 'POST',dataType: 'json',cache:false,timeout:2000,error: function(){},success: function(data) {tt = data.convertedword;}})
return tt;
}
然后调用alert(UTF8TOGBK('tttt'));
得不到返回值,我测试过 data.convertedword是有值的
...全文
962 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝色v翅膀 2011-07-21
  • 打赏
  • 举报
回复
顶下 我也遇到同样的问题了
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ibm_hoojo 的回复:]
CSS code

function UTF8TOGBK(word) {
var tt;
$.ajax({url: 'covUTF8ToGBK.action?word='+word,type: 'POST',dataType: 'json',cache:false,timeout:2000,error: function(){},success: function(data) {tt = ……
[/Quote]
顶..........
villagehead 2010-03-17
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 kissandrew 的回复:]

因为是异步,你的请求没完成,就返回tt了,所以tt没值
[/Quote]

看lz的代码好像还是jsp的思路,
但“异步”和“嵌入java/jsp代码”完全不同,
lz的代码等于返回了一个本来的tt,
但是ajax返回的tt可能还在“平行世界”中漂浮这呢,


good luck

kissandrew 2010-03-17
  • 打赏
  • 举报
回复
因为是异步,你的请求没完成,就返回tt了,所以tt没值
fengye_nothing 2010-03-17
  • 打赏
  • 举报
回复
LZ还没有解决吗??
fengye_nothing 2010-03-15
  • 打赏
  • 举报
回复
你那样是不行的, 你那样返回过来的是一个页面,我也是用的JQUERY里面的,我用的方法是:
$.post(url,"netWorkName="+netWorkName+"&t="+timstamp,callbackUp);
function callbackUp(data)
{
if(data=="error"){
alert('<s:text name="all.nameExist" />');
document.getElementById("netWorkInfoName").focus();
}else{}
}
callbackUp是回调函数,这个data就是你ACTION里面返回的值,在ACTION是:
PrintWriter out = response.getWriter();
out.print("error");
out.close();(注意这个一定要写,不然流就不会停止就一直都在返回值,你前台就没有反应)
SLL324 2010-03-15
  • 打赏
  • 举报
回复
up
xiayuqijava 2010-03-15
  • 打赏
  • 举报
回复
dataType: 'json'
说明返回值data是JSON的格式,不知道data.convertedword是不是JSON字符串中的一个属性了。
还有既然LZ说测试过 data.convertedword是有值的,那直接赋值给tt,应该也是没错的。
hoojo 2010-03-15
  • 打赏
  • 举报
回复

function UTF8TOGBK(word) {
var tt;
$.ajax({url: 'covUTF8ToGBK.action?word='+word,type: 'POST',dataType: 'json',cache:false,timeout:2000,error: function(){},success: function(data) {tt = data.convertedword;}})
return tt;
}
你把Ajax请求的这个方法改成同步是试试看,可能是异步才造成这样的问题。
当程序执行到return的时候,ajax的请求还没有得到返回值也说不定。我以前就遇到过。
不过你可以调用jQuery的$.data("key", value);他可以帮助你存储值,然后通过$.data("key");就
可以取到值了。
icy_csdn 2010-03-15
  • 打赏
  • 举报
回复
没怎么用过,不过这个应该是一个异步事件的处理。
是不能够直接返回值的,返回结果后你应该直接处理或调用另一个事件来处理。
success: function(data) {
tt = data.convertedword;
// alert(tt);应该有正确的值。
//在这里直接处理tt, 给一个html的element处理,或调用其他的事件。
}
这个文档包含了HTML/css的一些基础,还有JavaScript中的基础语法、DOM、BOM还有一些学习js中面向对象、和移动web开发、AJAX、jQuery的一些总结,还有些Web前端与移动开发面试宝典; 6、什么是事件冒泡/捕获? 事件冒泡: 事件到达事件目标之后不会结束,会逐层向上冒泡,直至document对象,也就是子元素事件的触发会影响父元素的事件; 开关事件冒泡: A,开启事件冒泡:event.addEventListener(eventName,handler,false); B,关闭事件冒泡:假设传统方式事件的返回值为e,就可以通过e.stopPropagation()来关闭事件冒泡; C ,return false; 同时具有阻止冒泡和阻止默认行为的功能 事件捕获:父元素的事件会影响子元素的事件; 开启事件捕获:event.addEventListener(eventName,handler,true) 7、请说说事件委托机制?这样做有什么好处? 事件委托,就是某个事件本来该自己干的,但是自己不干,交给别人来干。就叫事件委托。 打个比方:一个 button对象,本来自己需要监控自身的点击事件,但是自己不来监控这个点击事件,让自己的父节点来监控自己 的点击事件。 优点: A,提高性能:列如,当有很多li同时需要注册事件的时候,如果使用传统方法来注册事件的话,需要给每 一个li注册事件。然而如果使用委托事件的话,就只需要将事件委托给该一个元素即可。这样就能提高性能。 B,新添加的元素还会有之前的事件; 11、怎么理解jQuery? JQuery就是JavaScript和查询(Query),是一个Javascript库。可以用来操作文档对象、 选择DOM元素、制作动画效果、事件处理、使用Ajax等。 优点: a、轻量级 b、具有强大的选择器 c、封装了大量的DOM操作 d、事件处理机制相当可靠 e、完善的Ajax f、不污染顶级变量 g、出色的浏览器兼容性 h、链式操作方式 i、隐式迭代 j、行为与结构分离 k、支持丰富的插件 l、完善的文档 m、开源 12、Jquery.on这个方法怎么看? 答: jQuery.on()方法可以给匹配元素(可以是多个)绑定一个或多个函数, off 可以解除绑定

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧