前台代码:
 function GetServersideData()
         {
             $.getJSON("ASHXHandler.ashx?a="+Math.random(), function(json) { alert("ss"); });
         }ashx代码如下:
public class ASHXHandler : IHttpHandler
    {        #region IHttpHandler 成员        public bool IsReusable
        {
            get { return true; }
        }        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string data = "{name:\"jeff\"}";
            context.Response.Write(data);
        }        #endregion
    }现在点击按钮时,执行 GetServersideData 函数,但是没有任何反应,回调不能执行,请高手指点一下。。

解决方案 »

  1.   

    public void ProcessRequest(HttpContext context)
      {
      context.Response.ContentType = "text/plain";
      string data = "{name:\"jeff\"}";
      context.Response.Write(data);
      }
    你这啥都没有,咋进来?
    ASHXHandler.ashx?Action=FK //传个Action过来,方便多了的。Header里接收。

    string Action = context.Request.QueryString["Action"];
                if (Action == "FK")
                {
                      string data = "{name:\"jeff\"}";
                      context.Response.Write(data);
               }
      

  2.   

    我日,搞错了。还以为你问的什么了。context.Response.ContentType = "text/plain";
      string data = "{name:\"jeff\"}";
      context.Response.Write(data);你自己断点调试下,进来后看看Write的是什么。
      

  3.   


    string date = "{\"date:[{\"name\":\"jeff\"}]}";数据错了吧 。
      

  4.   

    应该是$.getJSON()对json数据有检查的 。
    你换成$.post()过去就能拿到数据 .
      

  5.   

    谢谢楼上的几位,问题解决了!
    关键点:"{name:\"jeff\"}"; 改成:"{\"name\":\"jeff\"}";
    之前的尝试包括:
    ASHXHandler.ashx?a="+Math.random() 加上一个随机数;
    $.ajaxSetup({cache: false});  //设置这个;
    context.Response.ContentType = "text/plain"; 设置为“application/json”
    上述方法均未奏效!
      

  6.   

    6楼 为什么我这样改不行呢,我返回的是一个数组
    [{\"value\":\"111\",\"text\":\"AAA\"},{\"value\":\"222\",\"text\":\"BBB\"},{\"value\":\"333\",\"text\":\"CCC\},{\"value\":\"444\",\"text\":\"DDD\}]???????