gpt4 book ai didi

javascript - 为什么 $.ajax({url :"xxx"}).responseText 返回未定义?

转载 作者:行者123 更新时间:2023-11-29 19:37:48 24 4
gpt4 key购买 nike

为什么 $.ajax({url:"xxx"}).responseText 返回 undefined?但是,如果我使用 a=$.ajax({url:"xxx"}),a.responseText 会返回正确的结果。

谢谢!

最佳答案

这是一个竞争条件(某种程度上)。

由于 AJAX 是异步的,它在后台运行。当你这样做时:

$.ajax({url:"xxx"}).responseText

您获取 responseText 的速度太快了。当您将它传递给一个值时,ajax 设法完成调用并且 responseText 有一个值。

如果你安装类似 AJAX debugger 的东西,你真的可以看到它发生了,它将 AJAX 请求记录到您的控制台中。然后您会看到在完成 ajax 调用之前 收到了 undefined 响应。您还可以设置 async: false 并查看同步调用是否有效(但不要这样做,它有点违背 AJAX 的要点)。

请注意,即使是第二个示例也可以(有时)返回未定义的值 - 较大的站点将需要更长的时间来返回响应,因此您不能真正依赖它。 正确的方法是在 ajax complete event 中运行所需的逻辑。 (或者更好 - success 事件)

关于javascript - 为什么 $.ajax({url :"xxx"}).responseText 返回未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24593553/

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