Javascript 为什么jquery中的get请求返回一个对象,而promise接口返回一个字符串?

Javascript 为什么jquery中的get请求返回一个对象,而promise接口返回一个字符串?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我对jQuery中的$.get方法有点困惑。使用get方法时,jQuery会自动将JSON解析为对象文本 例如: $ajax("exampleurl.php", function(data){console.log(data.propertyName)}); 这将返回正确的键/值 但当我使用promise接口时,它会将数据作为需要解析的字符串返回,例如: $ajax("exampleurl.php").done(function(data){console.log(data)}); 这将返回

我对jQuery中的$.get方法有点困惑。使用get方法时,jQuery会自动将JSON解析为对象文本

例如:

$ajax("exampleurl.php", function(data){console.log(data.propertyName)});
这将返回正确的键/值

但当我使用promise接口时,它会将数据作为需要解析的字符串返回,例如:

$ajax("exampleurl.php").done(function(data){console.log(data)});
这将返回[对象,对象]


我必须解析通过promise返回的数据,而该方法的回调函数会自动为我解析数据,这有什么原因吗?这似乎有点奇怪,所以我想知道这是否有原因。

我想你错了;据我所知,在请求时绑定的AJAX回调函数与稍后通过
done()
调用的AJAX回调函数之间的行为没有区别。这只与请求的数据类型以及jQuery推断它应该如何解释它有关。
这将返回[object,object]
看起来它返回的是一个数组,您可能会发现答案在第一个数组中。。例如<代码>数据[0]承诺仅用于返回1个值,通常在数组或对象文本中返回多个值。我从过去的jQuery中了解到,它不符合+规范,可能您运行的版本是:)@Keith谢谢,看起来数据嵌套在一个数组中-排序