繁体   English   中英

Asp.net Ajax删除记录无法在Production Server上运行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM