【发布时间】:2016-12-07 19:07:25
【问题描述】:
我有一张桌子和一个删除按钮。基本上我想要做的是当我点击删除按钮时,它会向我们的服务器发送一个删除请求并更新数据库。如果成功,它将从表中删除该行。
Config.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);
}
};
} ();
siteconfig.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");
}
);
}
});
现在每次单击按钮时,它都不会删除该行,控制台也不会记录该语句。我只是想知道为什么成功和失败回调不起作用。
非常感谢
【问题讨论】:
-
控制台日志有错误吗?如果您检查浏览器的网络选项卡,您是否看到它正在发送 AJAX 请求?
-
@Barmar 控制台日志中没有错误。 ajax 请求实际上已发送,我可以看到该行已在 db 中删除
-
您在网络选项卡中看到 JSON 响应了吗?
-
@Barmar 我没有看到 JSON 响应嗯
-
您在文档中的哪个位置看到
failure选项?
标签: javascript jquery ajax callback