$ .ajax无法接收JSON HTTP响应

时间:2013-06-01 20:47:34

标签: javascript ajax jquery

我是JavaScript,JQuery和Ajax编码的新手。 我使用JQuery $ .ajax方法来调用asyn REST调用。 不知何故,我无法接收HTTP响应JSON数据。

我可以看到以下警报结果。     alert(数据)方法结果是[Object Object]     alert(data.toSource())方法结果是({“key1”,“value1”})     alert($。parseJSON(data))方法结果是什么

我在firefox和chrome浏览器中测试了以下代码。

<html>
<head>
<title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"</script>
</head>
<body>
    <form id="foo">
        <label for="bar">A bar</label>
        <input id="bar" name="bar" type="text" value="" />
        <input type="submit" value="Send" />
    </form>
    <!-- the result of the search will be rendered inside this div -->
    <div id="result"></div>
    <script>
        $("#foo").submit(function(event) {
            event.preventDefault();
            $("#result").html('');
            var values = $(this).serialize();
            $.ajax({
                url: "resources/helloWorld",
                type: "GET",
                dataType: 'json',
                success: function(data){
                    alert(data);
                    alert(data.toSource());
                    var r = $.parseJSON(data);
                    alert(r);
                    $("#result").html(data);
                },
                error:function(){
                    $("#result").html('there is error while submit');
                }  
            });
        });
    </script>
</body>

1 个答案:

答案 0 :(得分:2)

从你的帖子:

alert(data) -> [Object Object]

是的,alert()使用参数的字符串表示,data是一个对象。

alert(data.toSource()) -> ({"key1","value1"})

是的,toSource()是一种Gecko方法,可用作JSON.stringify

alert($.parseJSON(data)) method result is nothing

是的,您正在尝试解析一个对象。


你想做的事情可能是:

success: function(data){
  $("#result").html(data.key1);
}