首页 新闻 会员 周边 捐助

谁能帮我看下这段AJAX错在哪里啊

0
悬赏园豆:5 [已解决问题] 解决于 2012-08-03 10:03

前台:   $.ajax({                

url: "./Default.aspx",                

type: "POST",                

contentType: 'charset=utf-8',                

success: function (data) {                   

 if (data = !null) {                        

$.each(data, function (i, item) {                            

var spotSelected = new BMap.Point(item.Point);                            

var labelMarker = new BMap.Marker(spotSelected, { icon: myIcon });  // 创建10个标注                            

mymap.addOverlay(labelMarker);                            

var opts = { offset: new BMap.Size(0, -25), title: '<a style="text-decoration:none;color:#2679BA" href="http://www.baidu.com">item.Name</a>'  };                            

var infoWindow1 = new BMap.InfoWindow("<div style='line-height:1.8em;font-size:12px;'><b>地址:</b>item.Address</br><b>电话:</b></br></div>", opts);                        

});                    

}                

}            

});        

}

后台:  

List<Company> xml = new XmlHelper().SetEntity(HttpContext.Current.Server.MapPath("XMLFile1.xml"));            

return xml;

问题:item为空。

      还有data为一堆页面代码

小小志向的主页 小小志向 | 初学一级 | 园豆:15
提问于:2012-07-23 15:54
< >
分享
最佳答案
0

贴代码尽量带上格式,另外指出什么错误。

被请求页面尽量用ashx。

响应数据类型尽量为String,或者json。

收获园豆:5
写代码的小2B | 老鸟四级 |园豆:4377 | 2012-07-23 16:13

不好意思,比较少发帖,已经修改,感谢你的关注!

小小志向 | 园豆:15 (初学一级) | 2012-07-23 16:17

@小小志向: 你后台的响应是List<T>,这在javascript是不可识别的。我在上面就有提到,响应最好为String或者json

写代码的小2B | 园豆:4377 (老鸟四级) | 2012-07-23 16:23

@写代码的小2B: 大哥你就直接帮我改下吧,我纠结好几个小时了。

小小志向 | 园豆:15 (初学一级) | 2012-07-23 16:40

@小小志向: 你把xml里面的内容贴出来看看。

写代码的小2B | 园豆:4377 (老鸟四级) | 2012-07-23 17:03
/// <summary>
    /// 实体
    /// </summary>
    [XmlRoot("Peoples")]
    public class Peoples
    {
        List<People> items;

        [XmlElement("People")]
        public List<People> Items
        {
            get { return items; }
            set { items = value; }
        }

        public String ToJson()
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("{\"Peoples\":[");
            foreach (People p in items)
            {
                sb.AppendFormat("{0},", p.ToJson());
            }
            if (Items.Count > 0)
                --sb.Length;
            sb.Append("]}");
            return sb.ToString();
        }
    }



/// <summary>
    /// 实体
    /// </summary>
    public class People
    {
        String name;
        [XmlAttribute]
        public String Name
        {
            get { return name; }
            set { name = value; }
        }
        Int32 age;
        [XmlAttribute]
        public Int32 Age
        {
            get { return age; }
            set { age = value; }
        }
        String sex;
        [XmlAttribute]
        public String Sex
        {
            get { return sex; }
            set { sex = value; }
        }

        public String ToJson()
        {
            return String.Concat("{ \"Name\":\"" + Name + "\",\"Age\":" + Age + ",\"Sex\":\"" + Sex + "\"}");
        }
    }
    /// <summary>
    /// ashx,后台代码
    /// </summary>
    public class GetPeoples : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            String xmlPath = context.Server.MapPath("../data.xml");
            System.Xml.Serialization.XmlSerializer serializer = new XmlSerializer(typeof(Peoples));
            Peoples p = null;
            using (FileStream fs = File.OpenRead(xmlPath))
            {
                p = serializer.Deserialize(fs) as Peoples;
            }
            context.Response.Write(p.ToJson());
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
                $.ajax({
                    "url": "Services/GetPeoples.ashx",
                    "dataType": "json",
                    "success": function (result) {
                       
                    }
                });

<?xml version="1.0" encoding="utf-8" ?>
<Peoples>
  <People Name="张三" Age="18" Sex="男"></People>
  <People Name="张三" Age="15" Sex="女"></People>
  <People Name="张三" Age="28" Sex="男"></People>
  <People Name="张三" Age="18" Sex="男"></People>
  <People Name="张三" Age="48" Sex="女"></People>
</Peoples>

 

写代码的小2B | 园豆:4377 (老鸟四级) | 2012-07-23 18:04

@写代码的小2B: 怎么给你加分!!万分感谢!

小小志向 | 园豆:15 (初学一级) | 2012-07-24 18:25

@写代码的小2B: 你好,打扰下麻烦问下window.frames["MapListMain"].toPoint();这个写法要怎么写!其中toPoint()是方法。好像说window.frames[""]后不能直接写方法。

小小志向 | 园豆:15 (初学一级) | 2012-08-03 10:05
其他回答(3)
0

后台返回的是JSON格式的数据吗?

dudu | 园豆:30948 (高人七级) | 2012-07-23 17:55

后台返回的是网页信息

支持(0) 反对(0) 小小志向 | 园豆:15 (初学一级) | 2012-07-23 17:56

@小小志向: 那$.ajax中data的值就是字符串,无法通过$.each进行处理

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2012-07-23 17:58

@dudu: 那可如何是好,我要怎么做呢

支持(0) 反对(0) 小小志向 | 园豆:15 (初学一级) | 2012-07-23 18:03

@小小志向: 通过Json.NET将xml转换为Json字符串返回

支持(0) 反对(0) dudu | 园豆:30948 (高人七级) | 2012-07-23 18:08
0

if()语句应该写错了的吧,只是看了一下代码,不知道ajax是不是可以像你那么写,不过看上去好像if()里面写错了的

小何人家 | 园豆:329 (菜鸟二级) | 2012-07-25 17:01
0

url: "./Default.aspx",           "./"  0.0?

秋风sao落叶 | 园豆:44 (初学一级) | 2012-07-26 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册