2017-02-24 44 views
1

在开发我平时做这样的事情:如何处理生产中的ajax错误?

fetchFaqData() { 
    this.$http.get('/services/getfaq').then((response) => { 
    this.faqs = response.data; 
}, (response) => { 
    console.log(response); 
    }); 
} 

这是好的,当你从事开发工作,查看是否出现问题与您的Ajax请求。你在生产中如何处理这些代码?

我认为这可能不是明智的或更好的通过console.log显示在生产中。人们在这种情况下做什么?

把它写到日志文件什么的?我通常在我的代码中使用相当多的这些ajax块,在console.log中输出错误响应。我也看到很多这样的例子。人们是否会在完成这些代码后检查它们的代码并将其记录到日志或其他内容中?或者最好从一开始就这样做?

感谢。

+0

您是否尝试过像哨兵这样的错误报告服务? –

+0

如果您使用的是jQuery,那么您可以使用'.ajaxSetup()'定义一个适用于所有AJAX请求的通用错误处理程序 –

+1

首先 - 用Axios替换Vue资源,因为不再支持VueResource。 –

回答

1

,我发现自己在同样的情况,幸运的是我获取一个JSON的内容,所以我不得不拦截和验证效应初探为:

this.$http.get('/api/json').then((response) => { 
    var json = JSON.parse(response.body); 

    if(!json){ 
     // alert error or do something 
    } 

    }, (response) => { 
    // console.log(response); 
    }); 

希望,就会有人对我们都提供了一个更好的答案

+1

我发现像sentry.io这样的东西会在您安装它时为您提供诸如console.log消息之类的东西。我不确定将这些错误消息发送给第三方。除此之外,你必须支付超过10K的事件。即使这可能不会很快发生,我想我宁愿有一个本地解决方案。我会研究更多,而人们希望提供更多的答案。 –

1

这取决于,你通常会处理在两个方面你的错误:

  1. 如果错误不影响您的系统和用户体验的工作流程,你CA ñ可能会忽略它。如果它是重要的,你将能够分析来自服务器的日志,看看它为什么会响应一个错误。否则,如果它是客户端问题 - 那么,编写测试交配或要求您的用户报告错误:)

  2. 如果错误确实影响系统工作流程或用户体验,您可能需要处理错误并尽量确保您的用户体验不受影响。

例子:

如果您请求从一个不存在,尝试使用一些备用用户图标服务器中的资料照片。

如果您的服务器崩溃并且响应超时,您可以显示一些通知/对话框/消息,指出“Ooups,出错了”。

总结:

显示用户可读的错误,如果它是他们的经验很重要。

客户端ajax-错误不是很重要,直到他们与某些服务器配对失败,因为,例如,可以有不良连接,他的电话可能会失败。

希望你会发现它很有用。

+0

是的,这也是有用的。 – samayo

+0

即使用户工作流程没有受到影响,因为我正确处理了错误并显示了一个可选的友好错误消息,或者防止出现某些令人讨厌的问题,但我仍然无法看到个人是否出现了问题。从javascript中出错的东西来分析日志(就像一个糟糕的Ajax请求)。我首先需要一个系统登录,这是整个问题的关键。所以我明白你的意思,这一直是我们关心的问题,但我需要一种解决方案,即使用户没有看到它,但实际上出现了问题。 –

+0

@ Stephan-v你不需要分析来自ajax的日志,因为即使没有错误,例如因为互联网连接不好,Ajax调用也会失败。我试图说的是,你需要从后端分析日志,而不是前端。 – euvl