为什么我的AJAX错误没有返回我的Webmethod异常?

时间:2017-04-06 09:45:44

标签: javascript jquery ajax entity-framework

我正在使用Google Chrome进行工作。

关注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

我想知道在哪里寻找我的错误?

1 个答案:

答案 0 :(得分:1)

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

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

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

<强>更新

console.log(error);是OP

的答案