ajax - How to print JSON response in javascript - Stack Overflow

I am able to make a Ajax request and getting response as well in form of JSON string, still alert box o

I am able to make a Ajax request and getting response as well in form of JSON string, still alert box of JavaScript is not showing actual response text. I am new to ajax concept and dont know much.

Ajax-Call:-

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();
};

Response Firebug is showing

This is my code to fetch response and print.

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...');
  }
}

Every time its a success but i get output as

I am able to make a Ajax request and getting response as well in form of JSON string, still alert box of JavaScript is not showing actual response text. I am new to ajax concept and dont know much.

Ajax-Call:-

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();
};

Response Firebug is showing

This is my code to fetch response and print.

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...');
  }
}

Every time its a success but i get output as

Share Improve this question edited Feb 19, 2015 at 8:54 dakab 5,92510 gold badges46 silver badges70 bronze badges asked Feb 19, 2015 at 7:47 user2332505user2332505 6492 gold badges10 silver badges22 bronze badges 4
  • do var res=JSON.parse(AJAX.responseText); alert(res.name)...It will alert Dehradun – Rakesh_Kumar Commented Feb 19, 2015 at 7:48
  • i tried that also , still same result – user2332505 Commented Feb 19, 2015 at 7:49
  • 1 It is an array. You need res[0]. But why not use jQuery if you tag the question jQuery? – mplungjan Commented Feb 19, 2015 at 7:51
  • 1 Do something like res[0].name.. where res[0] is the first object in array got after JSON.parse(AJAX.responseText) – Rakesh_Kumar Commented Feb 19, 2015 at 7:52
Add a ment  | 

2 Answers 2

Reset to default 1

You need to treat your response as JSON not as text.

Try this:

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...');
    }
}

If you need to see the value as part of debugging the code, you should use console.log(AJAX) to inspect the value.

If you really need to display some message to the user, then reconsider showing the json result unformatted/filtered - that said you could iterate through all the objects properties and concenate theese in a string (like @Hiral shows).

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745422414a4627023.html

相关推荐

  • ajax - How to print JSON response in javascript - Stack Overflow

    I am able to make a Ajax request and getting response as well in form of JSON string, still alert box o

    5小时前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信