[英]Asp.net Ajax Delete Record not working on Production Server
我正在使用这个Ajax代码来删除记录。 该代码在localhost中正常工作,而它不断要求托管服务器上的凭据。
在窗户上
有了所有参与者的建议,我现在主要怀疑两件事。
1)尽管付出了一些努力(需要联系服务器级支持),网络托管是一个便宜的镜头,并没有更新应用程序权限
2)也许消息框需要某些令牌如身份验证这
$(document).ready(function () {
$('.js-delete').on('click', function () {
var button = $(this);
var buttonId = button.attr("data-id");
//var container = $(this).parent().siblings('#tablex').find('#hiddenTable').clone();
var box = bootbox.dialog({
show: false,
message: "Are you sure you want to delete the Record?",
title: "Delete Record?",
buttons: {
cancel: {
label: "Cancel",
className: "btn-default"
},
ok: {
label: "Delete",
className: "confirm btn btn-danger",
callback: function (result) {
if (result) {
$.ajax({
url: "/api/datax/delete/" + button.attr("data-id"),
method: "Delete",
success: function () {
button.parents("tr").remove();
}
});
}
console.log('Button Pressed.');
}
}
}
});
});
});
在我的控制器中,我正在处理这样的删除调用。
[Route("api/datax/delete/{id}")]
public void Delete(int id)
{
var dataInDb = _context.Datax.SingleOrDefault(c => c.Id == id);
if (dataInDb == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
_context.Datax.Remove(dataInDb);
_context.SaveChanges();
}
如果插入和更新在生产服务器上正常工作,那么Web.config中就不会出现连接字符串问题。
Web.Config
中使用其凭据的用户,并检查它允许或不允许的天气。 如果它不允许那么你需要在SQL服务器中给予删除和读/写权限。 1)请检查Web服务器上是否允许HTTP-Delete-Method
2)前端的域部分是否与Web服务不同? 如果是,请检查浏览器控制台输出是否有关于CORS的错误,这意味着浏览器认为您正在进行一些跨站点脚本
3)在Internet Explorer中,我们遇到了Kerboros-Authentication的问题。 浏览器没有提供身份验证令牌。 不确定该截图是否为IE,但如果是,请检查切换以下设置是否会更改行为:
额外=>互联网选项=>高级=>安全性:“激活集成的Windows身份验证”和“启用高级保护模式”(或类似的东西,我已经从德语翻译了名称)
您是否尝试在ajax之前添加基本身份验证以进行弹出式身份验证?
beforeSend: function (xhr) { xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password)); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.