点击“警告”时未触发 Jquery ajax

Jquery ajax not triggering when hitting 'warning'

提问人:zazvorniki 提问时间:5/13/2022 更新时间:5/13/2022 访问量:14

问:

我有一个 ajax 调用连接到一个搜索,该搜索正在调用一个正在吐回 jsonp 结果的 api。这似乎非常有效,除非他们输入了不存在的东西。

我在控制台中返回了一个 jsonp 文件,该文件给了我一个“警告”

jQuery3600877660906184312_1652368192872({
    "status": "warning",
    "messages": {
        "generalMessages": [{
            "messageID": "1027",
            "messageCriticality": "warning",
            "messageText": "You provided an invalid field name."
        }, {
            "messageID": "1027",
            "messageCriticality": "warning",
            "messageText": "You provided an invalid field name."
        }, {
            "messageID": "1027",
            "messageCriticality": "warning",
            "messageText": "You provided an invalid field name."
        }],
        "recordMessages": []
    },
    "foundRows": 0,
    "data": []
})

我试图通过添加“失败”和“警告”来在我的ajax调用中解释这一点,只是希望抓住它,以便我可以处理它。不过,似乎没有什么人想抓住这一点。有什么想法吗?

var encoded = $.toJSON(search)
    $('#animalList').empty();
    $.ajax({
        url: 'url' + encoded,
        dataType: 'jsonp',
        success: function (data) {
               // do stuff
        },
        warning: function (xhr, status, error) {
            console.log('warning');
        },
        error: function (xhr, status, error) {
            console.log('error');
        }
    });
jQuery JSONP的

评论

0赞 freedomn-m 5/13/2022
ajax 请求响应是成功的,即 200 http 代码,即它没有“失败”来取回一些数据。该数据包含/表示的内容与请求无关。发出了请求并返回了一些数据,因此它进入了 .jquery没有(可以想象的)方法来检查数据中是否存在称为“status”的“随机”属性。success:
0赞 freedomn-m 5/13/2022
success: function (data) { if (data.success == "warning") return console.error("warning"); ...
0赞 zazvorniki 5/13/2022
@freedomn-m 它根本没有进入成功功能,为什么它让我感到困惑。我确实尝试了一下,将 if 放在成功中,但它只是跳过所有内容并将该响应文件添加到脚本文件夹中。实际上没有数据返回,只是错误消息

答: 暂无答案