我'目前正在学习AJAX技术。
在Chrome控制台中,当我输入jsonObject.responseText
时,我会在控制台中获取所有数据,但是当我在.js
文件中执行相同操作以将其打印到控制台(或HTML元素)时,它说
"undefined"
JSON对象来自:
https://jsonplaceholder.typicode.com/users
JavaScript中的代码:
var jsonObject = $.ajax({
url: "https://jsonplaceholder.typicode.com/users",
dataType: "json"
});
console.log(jsonObject.responseText);
答案 0 :(得分:1)
AJAX - 异步 JavaScript和XML。 这意味着数据是在一个单独的线程中异步获取的。
document.querySelector('input[type=password]').value
你的console.log是在实际完成$ .ajax获取数据之前执行的。因此jsonObject未定义。当你在控制台中执行相同的操作时,$ .ajax就完成了,现在此时数据存在于jsonObject中,与以前不同。
您需要提供成功回调,该回调在返回响应时执行。
var jsonObject = $.ajax({ url: "https://jsonplaceholder.typicode.com/users", dataType: "json" });
console.log(jsonObject.responseText);
答案 1 :(得分:0)
您应该在呼叫的success
/ done
处理程序中访问您从ajax调用获得的响应。
$.ajax({
url: "https://jsonplaceholder.typicode.com/users",
dataType: "json"
})
.done(function(jsonObject){
// Received response from the call. Now you can safely access it
console.log(jsonObject);
});
这是一个有效的jsbin
当ajax调用成功从服务器收到响应时,将执行done
处理程序中指定的回调。