我能够以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正在显示
这是我获取响应和打印的代码。
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...');
}
}
每次成功,但我输出为
答案 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表示。