首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

JQuery .ajax异步请求解决思路

2012-06-08 
JQuery .ajax异步请求通过一个按钮想测试下AJAX及JSON前端代码段如下:HTML codescript typetext/javasc

JQuery .ajax异步请求
通过一个按钮想测试下AJAX及JSON

前端代码段如下:

HTML code
<script type="text/javascript">    $(document).ready(function(){        $("#btncheck").click(function(){            var userdata=            {                "users":                [                    {"name":"user1", "sex":"m", "age":"20"},                    {"name":"user2", "sex":"f", "age":"21"}                ]            };                        var user = JSON.stringify(userdata);            $.ajax({            url: '/webtemplate/site.ajax.json.do?method=validate',            type: 'post',            data: 'user=' + user,            dataType: 'json',            timeout: 1000,            error: function()            {                alert('Error!');            },            success: function(result)            {                alert(result);            }            });        });    });</script></head><body><form action="#" method="post">  <input type="button" id="btncheck">JQueryJson测试</input></form></body></html>



后端代码片段为:

Java code
public ActionForward validate(ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception    {        String myJson = request.getParameter("user");            // 转化为JSON对象        JSONObject json = new JSONObject(myJson);                // 获取对应的数组        JSONArray array = json.getJSONArray("users");        for (int i = 0; i < array.length(); i++)                 {            // 获取对应数组的每一个对象            JSONObject thisJson = (JSONObject) array.get(i);            log.info(thisJson.get("name") + " - " + thisJson.get("sex") + " - " + thisJson.get("age"));        }                String book = "{'name':'chinese','publish':'china','price':30}";        JSONObject.fromObject(book);        response.setContentType("application/x-json");        PrintWriter out = response.getWriter();         out.println(book.toString());        out.flush();         out.close();                return null;    }


点击页面的测试按钮时,可以看到后台有日志输出:

2012-05-28 16:55:24 734 INFO JsonAction:78 - user1 - m - 25
2012-05-28 16:55:24 734 INFO JsonAction:78 - user2 - f - 21


可是前端貌似没能收到后端返回的JSON对象,因为总提示失败时的方法信息 Error!


大家帮忙看看哈

[解决办法]
这个时候你应该借组火狐的firebug,客户端返回什么数据都可以看到的。
至于你这里,貌似在服务器端,你返回的东西是不是错了哦。JSONObject.fromObject(book);应该是返回的这个转换之后的结果吧?你直接返回字符串,java中'是要加上\的,\'这样才正确。
[解决办法]
严格的json要求用双引号来包裹键值
比如
{"name": "Tom"}
[解决办法]
可能是json的格式问题。
你也可以先返回一个简单的字符串试试,看看行不行。
[解决办法]
可能是json的格式问题。
你可以先返回一个简单的字符串试试看,如果可以的话,说明是json的写法有问题。
[解决办法]
json格式问题 你试试

var userdata=[{"name":"user1", "sex":"m", "age":"20"},
{"name":"user2", "sex":"f", "age":"21"}];

热点排行