gpt4 book ai didi

javascript - 无法访问延迟对象中的 jquery ajax responseText

转载 作者:行者123 更新时间:2023-12-02 16:54:42 25 4
gpt4 key购买 nike

我需要基于对 Web 方法的 ajax 调用创建一个 promise 。最初,我使用这种方法让它工作:

$.ajax({
url: window.location.pathname + "/LoadPage"
)}.done(function(data){
//do some stuff
}).fail(function(){
//do other stuff
});

然后我遇到了需要等待某些内容加载才能执行其他操作的问题,因此我决定创建一个变量来保存 Promise 对象。

var promiseObj = $.ajax({...});

然后创建一个命名函数来调用

function someFunction(data){...}

获取服务器的响应

var someData = promiseObj.responseText;

并这样调用它

promiseObj.done(someFunction(someData));

但没有成功。我收到了未定义的错误。

所以我尝试console.log

console.log(promiseObj) //shows the object
console.log(promiseObj.responseText) //gives undefined

我做错了什么?如何使用此方法将 ajax 调用中的数据发送到另一个函数?任何帮助,将不胜感激。

最佳答案

首先,只需删除 .done 调用中的函数包装器 - 只需调用 .done(someFunction) 即可。这将确保 AJAX 调用生成的所有参数都传递给 someFunction。它还将确保在 $.ajax 调用中设置的任何 this 上下文也能正确传递。

修复此问题后,应该会发现 jqXHR 对象作为第三个参数传递给 someFunction,因此您可以使用它来访问 .responseText.

function someFunction(data, status, jqXHR) {
var text = jqXHR.responseText;
...
}

promiseObj.done(someFunction);

关于javascript - 无法访问延迟对象中的 jquery ajax responseText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260692/

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