gpt4 book ai didi

javascript - AJAX 成功失败回调不起作用

转载 作者:行者123 更新时间:2023-11-30 11:45:48 27 4
gpt4 key购买 nike

我有一个表,我有一个删除按钮。基本上我想要做的是当我点击删除按钮时,它会向我们的服务器发送一个删除请求并更新数据库。如果成功,它将从表中删除该行。

配置.js

var SiteConfigProxy = function () {
"use strict";

var getSiteConfig = Config.apiUrl + "/configs/site/{siteId}";
var addDevice = Config.apiUrl + "/configs/device/{deviceId}";

var delete1 = function (url, data, done, fail){
$.ajax({
type: "DELETE",
url: url,
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (typeof (done) === 'function') done(data);
},
failure: function (data) {
if (typeof (fail) === 'function') fail(data);
}
});
};

return {
deleteDeviceConfig: function (deviceId, data, done, fail){
delete1(addDevice.replace("{deviceId}", deviceId), data, done, fail);
}
};
} ();

站点配置.js

        configTable.on("click", ".delete", function (event) {
event.preventDefault();
if (confirm("Are you sure to delete this row?")) {
var tableRow = $(this).parents("tr")[0];
var data = {
siteId: tableData.fnGetData(tableRow)[1],
hostname: tableData.fnGetData(tableRow)[2]
};

SiteConfigProxy.deleteDeviceConfig(tableData.fnGetData(tableRow)[0], data,
function(data){
tableData.fnDeleteRow(tableRow);
console.log("delete succeeded");
},
function(data){
console.log("delete failed");
}
);
}
});

现在每次我点击按钮时,它都不会删除该行,控制台也不会记录该语句。我只是想知道为什么成功和失败回调不起作用。

非常感谢

最佳答案

由于您的服务器脚本没有返回有效的 JSON 响应,它应该调用失败回调(因为尝试将响应解析为 JSON 失败)。但该选项的正确名称是 error:,而不是 failure:。所以将其更改为:

    error: function (data) {
if (typeof (fail) === 'function') fail(data);
}

如果服务器不应该发回 JSON 响应,请省略 dataType: 选项,它不会尝试解析它。

关于javascript - AJAX 成功失败回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025392/

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