gpt4 book ai didi

jquery - 为什么这里没有定义responseText?

转载 作者:行者123 更新时间:2023-12-03 22:50:51 24 4
gpt4 key购买 nike

$.ajax({
url: 'http://jsonplaceholder.typicode.com/posts/1',
method: 'GET',
}).done(function(data){
console.log(data);
console.log(data.responseText);
});

任何人都可以帮助我理解为什么 console.log(data.responseText); 返回未定义吗?

http://clarkben.com/ajaxtesting/

编辑:好的,看起来数据不是 jqXHR 对象。如果将整个 $.ajax 语句分配给一个变量,那么该变量就是一个 jqXHR 对象,因此可以通过这种方式访问​​它。我不确定为什么传递到 .done 一部分的函数的数据不是 jqXHR 对象。

var theRequest = $.ajax({
url: 'http://jsonplaceholder.typicode.com/posts/1',
method: 'GET',
}).done(function(data){
console.log(data);
console.log(theRequest.responseText);
});

最佳答案

默认情况下,jQUery 尝试猜测响应的类型。如果响应的 header 为 application/json , data将是一个 JavaScript 对象。如果这类似于 text/htmltext/plain , data将是一个包含响应正文的简单字符串。

data.responseText显然是undefined如果您在字符串(或没有属性的 JavaScript 对象 responseText )上调用它

请参阅 jQuery ajax 文档:http://api.jquery.com/jquery.ajax/

jqXHR.done(function( data, textStatus, jqXHR ) {});

第一个参数是数据。如果您想要 jqXHR,这是第三个参数。

关于jquery - 为什么这里没有定义responseText?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32847946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com