我能够发出 Ajax 请求并以 JSON 字符串的形式获取响应,但 JavaScript 的警报框仍然没有显示实际的响应文本。 我是 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
这是我获取响应和打印的代码。
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...');
}
}
每次都成功,但我得到的输出为
最佳答案
您需要将您的响应视为 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...');
}
}
关于javascript - 如何在 JavaScript 中打印 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28601023/