var responsetext=ajax.responseText
var json=eval (responsetext);
var id=json.id;
var num=json.num;
var name.json.name;
ajax是一个XMLHttpRequest对象,请问我这个返回值responseText应该怎样表示,假设这个responseText是由showinfor.aspx
页面返回的,应该怎样去写response.write();
因为代码是我从网上一个站点下载的,自己也是刚接触ajax,不太懂,请各位帮帮忙。

解决方案 »

  1.   

    看你这样子是要返回一个json结构,请求aspx页面的话可以用Response.Write("")来拼接json串,比如
    this.Response.Write("var jsonObj = {id : 11, name : \"sy\", num : 200};");
    但是请求aspx的话往往返回除了你拼接的json结构外,还有生成的html的部分,你还要重写一下Render,不让他们生成html部分。
    所以一般都用ashx,或者webservice作为服务端。
      

  2.   

    如果想把返回值显示在文本框,文件框名字是txt1,则如此写:
    var Text1 = '<%=txt1.ClientID%>';
    document.getElementById(Text1).value = ajax.responseText;
                        _doPostBack(Text1, '');
      

  3.   

    确实是返回的一个json格式数据,使用webservice应该怎样组织返回字符串呢?我看我下载的源码url也是一个普通的aspx格式文件,不过它在js方法中使用了var json=eval(""+responseText+""),能具体给我描述一下嘛,本人不胜感激。Quote=引用 1 楼 symbol_bc 的回复:]
    看你这样子是要返回一个json结构,请求aspx页面的话可以用Response.Write("")来拼接json串,比如
    this.Response.Write("var jsonObj = {id : 11, name : \"sy\", num : 200};");
    但是请求aspx的话往往返回除了你拼接的json结构外,还有生成的html的部分,你还要重写一下Render,不让他们生成h……
    [/Quote]
      

  4.   

    请求ashx最好,最简单,直接,干净,请求webservice的话,还要在web.config添加协议,url还有方法名什么的。添加一个一般性处理程序的话: public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "text/plain";
                context.Response.Write("Hello World");
            }
    //直接就context.Response.Write("Hello World");这里返回就行。
      

  5.   


    也可以使用repspose.end(),就是在你response.write("var josnOjb={name:\"张三\",age:18}")之后加上一句repsonse.end()返回到客户端只有var jsonOjb={name:\"张三\",age:18}
      

  6.   

    我直接写context.Response.Write("id : 11, name : wangwen,num : 200");就可以了吗?还是还得写成
    context.Response.Write("var jsonObj = {id : 11, name : wangwen, num : 200};");
    我先测试下,有问题还得麻烦高手您。
      

  7.   

    肯定是要下面那种context.Response.Write("var jsonObj = {id : 11, name : wangwen, num : 200};");
    其实无论是什么东西返回来的肯定是字符串。
      

  8.   

    哦,对,既然你js这边是这样写的var responsetext=ajax.responseText
    var json=eval (responsetext);
    var id=json.id;
    var num=json.num;
    var name.json.name;那么,你在服务端可以这样写context.Response.Write("{id : 11, name : wangwen, num : 200};");把里面的变量名去掉。
      

  9.   

    不好意思,还得麻烦下您,现在部分功能算是实现了,可还是有点小问题,Response.Write("{ID : "+id+", NAME: \""+name+"\", NUM:num}");
    其中id,name,num都是变量名id,num是int型,name是string,我这样写有问题吗?到了客户端取出ID,NUM是字符型还是整型了?