ajax如何传递对象

great_king 2008-04-07 08:00:25
刚刚学习ajax很菜,呵呵,所以这个问题也很菜。请各位老鸟帮忙解答。

我学习ajax后知道通过它,可以使用javascript很方便的与服务器进行数据传递。但是它的返回值只能以文本或xml的格式处理。有没有方法让返回值直接以对象的形式处理呢。就像jsp的隐式对象那样。这样调用就更方便啦。
...全文
1323 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
java0000000 2008-04-11
  • 打赏
  • 举报
回复
只要有介质传输。就可以转化成对象
wuchao911 2008-04-08
  • 打赏
  • 举报
回复
function requestHttp(){
var request;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {request.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {try
{request = new ActiveXObject(versions[i]);break;}
catch(e) {}
}}
return request;
}
function xmlhttp(){
this.r=requestHttp();
}
xmlhttp.prototype.postopen=function(url,data){
this.r.open('POST',url,false);
this.r.setrequestheader("content-type","application/x-www-form-urlencoded");
this.r.onreadystatechange = ReadyStateChange(this);
if(typeof(data)=='undefined')
this.r.send();
else
this.r.send(data);
}
xmlhttp.prototype.getopen=function(url){
if(window.XMLHttpRequest) {this.r.open('GET',url);
this.r.onreadystatechange = ReadyStateChange(this);
this.r.send(null);
} else {
this.r.open("GET", url, true);
this.r.onreadystatechange = ReadyStateChange(this);
this.r.send();
}
}
ReadyStateChange=function(obj){
return function(){
if(obj.r.readyState==4){
obj.status=obj.r.status;
obj.text=obj.r.responseText;
obj.body=obj.r.responseBody;
callpage();
}
}
}
把这个别存为Shopajax.js
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript" src="shopajax.jss"></script>

</HEAD>
<BODY>
<div id="as"></div>
<SCRIPT LANGUAGE="JavaScript">
<!--
var ajax=new xmlhttp();
debugger
ajax.getopen("1.html");

function callpage(){
if(ajax.status==0){//本地为0,远程为200
var obj=eval('('+ajax.text+')');
document.getElementById("as").innerHTML="年纪:"+obj.Age+"<br>薪水:"+obj.Money;
}
}
//-->
</SCRIPT>
</BODY>
</HTML>
这个随便存一个页面保存为index.html
{"Money":2000.00,"Age":21}
把这个存成一个1.html

保存完后,点击Index.html就可以看到Div里面有值了。值是从1.html里面取到的。这个过程实现 了Ajax
ee4456 2008-04-07
  • 打赏
  • 举报
回复
额,貌似JSONString比XML稍微方便点,支持.属性。。。你可以试试,不过JS没见过直接传一个JAVA对象过去,你可以利用现有封装好的AJAX框架,因为JS不认识JAVA的对象,可以用DWR进行配置,用<convert>标签。。
eswn 2008-04-07
  • 打赏
  • 举报
回复
楼主可以考虑对象的序列化.通过js来显示.
justicesun 2008-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 great_king 的回复:]
xmlhttpRequest,根据我得到的资料只能传递文本或xml。没有取得对象的方法。
[/Quote]
把重要信息传过去不就行了...实在没必要传一整个对象...
chenhongxin 2008-04-07
  • 打赏
  • 举报
回复
xmlhttpRequest 通过这个东传的,这东西是AJAX的核心内容...
great_king 2008-04-07
  • 打赏
  • 举报
回复
xmlhttpRequest,根据我得到的资料只能传递文本或xml。没有取得对象的方法。

62,623

社区成员

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

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