当使用AJAX发送请求并期望得到返回值时,有几种可能的原因会导致返回值为undefined。
示例代码:
// 使用回调函数
function getData(callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'example.com/api/data', true);
xhr.onload = function() {
if (xhr.status === 200) {
callback(xhr.responseText);
}
};
xhr.send();
}
getData(function(response) {
console.log(response); // 返回值在回调函数中处理
});
// 使用Promise
function getData() {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'example.com/api/data', true);
xhr.onload = function() {
if (xhr.status === 200) {
resolve(xhr.responseText);
} else {
reject(xhr.statusText);
}
};
xhr.send();
});
}
getData().then(function(response) {
console.log(response); // 返回值通过Promise处理
}).catch(function(error) {
console.error(error);
});
示例代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'example.com/api/data', true);
xhr.onload = function() {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
console.log(response); // 正确处理服务器响应
}
};
xhr.send();
onerror
事件来处理错误,并检查status
和statusText
属性来获取更多错误信息。示例代码:
var xhr = new XMLHttpRequest();
xhr.open('GET', 'example.com/api/data', true);
xhr.onload = function() {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
console.log(response);
}
};
xhr.onerror = function() {
console.error(xhr.status + ': ' + xhr.statusText); // 错误处理
};
xhr.send();
上一篇:Ajax返回值