+ -
当前位置:首页 → 问答吧 → jQuery1.4 使用getJSON不成功(求助)

jQuery1.4 使用getJSON不成功(求助)

时间:2010-01-24

来源:互联网

jQuery1.4 使用getJSON不成功,同样的代码,在1.23和1.3版正常.
环境:asp.net 2.0/IE7/firefox
运行后像没有执行getJSON一样的,连$("#msg").html("服务器返回成功...");
都没执行.
各位帮助看看,谢谢.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>联动下拉菜单</title>
<script type="text/javascript" src="jquery-1.4.min.js"></script>
<script type="text/javascript">
$(function(){
$("#city").change(function(){
     $.getJSON("14-13.aspx",{index:$(this).val()},function(myJSON){
         //根据返回的JSON数据,创建<option>项
         var myOptions='';
         for(var i=0;i<myJSON.length;i++){
             myOptions += '<option value="' + myJSON.optionValue + '">' + myJSON.optionDisplay + '</option>';
         }
         $("#area").html(myOptions);       //在第2个下拉菜单中显示数据
            $("#msg").html("服务器返回成功...");
     });
});
$("#city").change();      //让页面第1次显示的时候也有数据
})
</script>
</head>
<body>
    <select id="city">
        <option value="1">北京</option>
        <option value="2">上海</option>
        <option value="3">天津</option>
    </select>
    <select id="area">
    </select>
    <div id="msg">
    </div>
</body>
</html>


服务器代码文件14-13.aspx
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
    Response.CacheControl = "no-cache";
    Response.AddHeader("Pragma","no-cache");

    string JSON_text = "";
    switch (Request["index"])
    {
        case "1":
            JSON_text = "[{optionValue:1,optionDisplay: '海淀区'},{optionValue:2,optionDisplay: '东城区'},{optionValue:3,optionDisplay: '朝阳区'}]";
            break;
        case "2":
            JSON_text = "[{optionValue:1,optionDisplay: '黄浦区'},{optionValue:2,optionDisplay: '徐汇区'},{optionValue:3,optionDisplay: '静安区'},{optionValue:4,optionDisplay: '嘉定区'},{optionValue:5,optionDisplay: '松江区'}]";
            break;
        case "3":
            JSON_text = "[{optionValue:1,optionDisplay: '和平区'}]";
            break;
    }
    Response.Write(JSON_text);
            
%>

[ 此帖被lxyukiss在2010-01-24 19:10重新编辑 ]

作者: lxyukiss   发布时间: 2010-01-24

ContentType不是text/html,而是application/json

作者: keakon   发布时间: 2010-01-24

不是ContentType原因,修改成application/json 后问题依旧.

作者: lxyukiss   发布时间: 2010-01-25

1.4 对json的格式有了更严格的控制,如不在支持MS DATE 表示: /Date(@Tickets)/
而只支持"yyyy-MM-ddTHH:mm:ss SSSZ"  
建议设置成datatype设置成txt执行转换成json对象

作者: xuanye   发布时间: 2010-01-25

你的问题是json表示没加引号

{"optionValue":1,"optionDisplay": '海淀区'}
注意引号

作者: xuanye   发布时间: 2010-01-25

这个问题早上已经解决了,就如楼上所说.必须加双引号.
写成
JSON_text = "[{\"optionValue\":1,\"optionDisplay\": \"和平区\"},{\"optionValue\":2,\"optionDisplay\": \"南开区\"}]";
就没问题了.

还是要谢谢各楼

作者: lxyukiss   发布时间: 2010-01-25

相关阅读 更多

热门下载

更多