如何在javascript中打印JSON响应

时间:2015-02-19 07:47:44

标签: javascript ajax

我能够以JSON字符串的形式发出Ajax请求并获得响应,但仍然没有显示实际响应文本的警告框。 我是ajax概念的新手并且不太了解。

Ajax的呼叫: -

Action triggered on dropdown
<select name="state" onchange="getOptions(this.value)">

Javascript Function called :-
function getOptions(state){
  AJAX.onreadystatechange = handler;
  AJAX.open("GET", "getData?id="+state);
  AJAX.send();
};

响应Firebug正在显示

Response Content

这是我获取响应和打印的代码。

function handler() {
  if(AJAX.readyState == 4 && AJAX.status == 200) {
    var json = eval('(' + AJAX.responseText +')');
    alert('Success. Result:' + json);
  }
  else if (AJAX.readyState == 4 && AJAX.status != 200) {
      alert('Something went wrong...');
  }
}

每次成功,但我输出为 enter image description here

2 个答案:

答案 0 :(得分:1)

您需要将响应视为JSON而不是文本。

试试这个:

function handler() {
    if (AJAX.readyState == 4 && AJAX.status == 200) {
        var json = JSON.parse(AJAX.responseText), len = json.length, i = 0, txt = "";
        for (; i < len; i++) {
            if (txt) {
                txt += ", ";
            }
            txt += json[i].name;
        }
        alert('Success. Result:' + txt);
    } else if (AJAX.readyState == 4 && AJAX.status != 200) {
        alert('Something went wrong...');
    }
}

答案 1 :(得分:0)

如果您需要将值视为调试代码的一部分,则应使用  console.log(AJAX)检查价值。

如果你真的需要向用户显示一些消息,那么重新考虑显示未格式化/过滤的json结果 - 表示你可以遍历所有对象属性并将thece浓缩成一个字符串(如@Hiral表示。