0

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

我可以看到以下警报结果。alert(data) 方法结果为 [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>

4

1 回答 1

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);
}
于 2013-06-01T21:01:09.297 回答