2017-04-06 50 views
0

我为我的工作使用谷歌浏览器。为什么我的AJAX错误没有返回Webmethod异常?

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

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

所以我试过低于(PS:我使用的发送DML数据库实体框架的DbContext):

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

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

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

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

更新

console.log(error);在OP

+0

冷的情况下的答案。 'console.log(error);'显示错误信息。谢谢。但我也看到,'成功'和'错误'都被触发。例如在'success'中添加'$。('#id')。val('')'也会触发......为什么? – snorlax

+0

似乎'$。('#id')。val('')'包含一个空格。所以它会触发'返回'成功''。你有没有尝试删除像[这里](http://stackoverflow.com/a/2373663/7823445)返回语句? – Keylies

+0

我最近的评论不会对你有所帮助。看看[谷歌镀铬火两次](http://stackoverflow.com/questions/35061361/javascript-jquery-on-click-confirm-fires-twice)它可能是一个缓存问题在隐私模式下加载页面。不要忘了回答有效或更新标题 – Keylies

相关问题