【问题标题】:Why is my AJAX error not returning my Webmethod exception?为什么我的 AJAX 错误没有返回我的 Webmethod 异常?
【发布时间】:2017-04-06 09:45:44
【问题描述】:

我在工作中使用谷歌浏览器。

https://stackoverflow.com/a/26003200/7204173 之后,我尝试从 webmethod 返回异常。但它没有在 console.log 中显示任何内容。我唯一得到的是从网络选项卡下面的一般错误消息:

“更新条目时发生错误。有关详细信息,请参阅内部异常。”

所以我尝试的是下面(ps:我正在使用实体框架 DbContext 向 DML 发送数据库):

public string AddData(myEntity e)
{
   using(var context = new MyEntityModel())
   {
       try
       {
           context.myEntity.Add(e);
           context.SaveChanges();
           return "success";
       }catch(Exception ex)
       {
          return "error : " + ex.Message;
       }

   }
}

现在我的 Javascript 代码:

function AddArticle()
{
    var e {id : "1", value : "test"};
    var DTO = { 'e': e };

    $.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(DTO),
        url: "MyPage.aspx/AddData",
        success: function (response) {
            console.log(response);            
        },
        error: function (xhr, status, error) {
            var exception = JSON.parse(xhr.responseText);            
            alert(exception.Message);
            console.log(exception.Message);
        }
    });
}

假设我在输入按钮后面调用了 javascript 函数。由于是数据库,var e {id : "1", value : "test"}; 不能添加两次,因为id 是主键。我仍然在 console.log 中一无所获;警报框甚至不会被触发。但成功后,console.log 会按预期显示success

知道我应该在哪里寻找我的错误吗?

【问题讨论】:

    标签: javascript jquery ajax entity-framework


    【解决方案1】:

    您是否尝试记录其他错误参数?

    console.log(xhr);
    console.log(status);
    console.log(error);
    

    您应该能够在控制台中手动解析日志并找到所需变量的正确路径。

    更新

    console.log(error); 是 OP 的答案

    【讨论】:

    • 酷。 console.log(error); 显示错误消息。谢谢你。但我也看到successerror 都被触发了。例如在success 中添加$.('#id').val(' ') 也会被触发...为什么?
    • $.('#id').val(' ') 似乎包含一个空格。所以它会触发return "success"。您是否尝试删除像 here 这样的 return 语句?
    • 我最后的评论对我没有多大帮助,抱歉。看看google chrome fire twice 可能是缓存问题以隐私模式加载页面。不要忘记验证答案或更新标题
    • 别担心......我想我错过了一些东西,但$.('#id').val('') 终于表现得完全正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2012-01-22
    相关资源
    最近更新 更多