【问题标题】:Javascript Ajax Uncaught (in promise) undefinedJavascript Ajax Uncaught (in promise) undefined
【发布时间】:2021-04-15 22:42:58
【问题描述】:

我正在努力使用承诺的 ajax GET。 如果 ajax 遇到错误,例如 URL 不正确,则会调用 'error: function ()' 并在浏览器调试中收到错误消息“Uncaught (in promise) undefined”

ajax 函数的前两部分工作正常,即如果 ajax 返回成功,则 result.success 的两个内部条件都有效,我只是不知道如何解决 ajax 中的拒绝调用底部错误函数:

    var myVariable = "test";
    let promise = myFunction(myVariable);
    
    promise.then(function () {
        // Do Something           

    }).catch(function (message) {

        console.error(message);
    });     

    function myFunction(myVariable) {

    return new Promise(function (resolve, reject) {

        $.ajax({
            type: "GET", //send it through get method
            url: "/myURL/Edit?handler=GetBlahBlah",
            data: {
                sourceType: myVariable
            },
            contentType: "json",
            dataType: "json",
            success: function (result) {
                if (result.success == false) {
                    reject(result.responseText); // This works
                } else {
                    resolve(); // This works
                }
            },
            error: function () {
                reject("Error while making Ajax call! Get Trigger"); // NOT WORKING!!
            }
        });
    });
}

【问题讨论】:

  • 不,这没有帮助,不了解他们的用例,这看起来与我的示例不同。请解释一下。
  • 他们遇到了同样的问题:在 ajax 选项对象上混合了 Promise 和成功/错误函数。您不需要将 .ajax 包装在一个 Promise 中,它已经返回了一个 Promise。我将使用示例代码添加答案。

标签: javascript ajax promise


【解决方案1】:

原来我原来的问题确实可以正常工作,一开始我没有注意到这个 ajax GET 请求的调用方法在不同时间来自我的 javascript 中的两个不同进程,而且我没有包含一个 catch 块关于第一次实际调用这个 ajax 的过程。 如果我给任何人造成任何困惑,我很抱歉!

【讨论】:

  • 遇到了同样的问题,感谢发布答案,遇到了类似的问题。
猜你喜欢
  • 1970-01-01
  • 2019-12-20
  • 2021-08-18
  • 1970-01-01
  • 2021-01-08
  • 2021-09-20
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多