gpt4 book ai didi

jquery - Django ajax错误响应最佳实践

转载 作者:太空狗 更新时间:2023-10-29 17:58:54 25 4
gpt4 key购买 nike

我在我的 Django 项目中使用 ajax 来改善用户体验。我在这里关心的是如何正确响应浏览器的错误。据我所知,我可以:

  1. 逐条验证请求数据,逐条防范异常。如果发生不好的事情,引发 Http404 或其他异常以明确宣布发生了错误。或者
  2. 只需编写没有异常处理的代码,并假设它会工作。如果发生不好的事情,未捕获的异常将导致内部服务器错误,这仍然是浏览器的错误

对我来说,第一种方法似乎更正统,因为在 Python 中“显式优于隐式”的理念确实很重要。但是,由于从第二个中删除了所有类型的异常检查,因此它更清晰、碎片更少且可读性更强。

我正在使用 jQuery 处理 ajax 请求/响应,这两种方法似乎都有效。我的问题是:

  1. 这两种方法都可以接受吗?
  2. 对于其他 Javascript 库,第二种方法是否会失败?
  3. 这方面的最佳做法是什么?

附言。我确实进行必要的数据验证。请不要为此偏离主题。 :)

最佳答案

如果您返回状态代码为 4xx 或 5xx 的响应,这是一个错误,将触发 jQueries error 处理程序。虽然每次都可以简单地返回状态 200 并在 JSON 响应中使用“错误”字段(如 dm03514 所建议的那样),但这样做很糟糕,原因有二:

  1. 它违反了良好的 HTTP 惯例。定义大量错误代码是有原因

  2. 您不能利用 jQuery 已经有一个错误处理程序这一事实,它可以让您将正常行为与错误处理分开。

大多数情况下,错误响应与非错误响应有很大不同,因此将此消息的处理放在一段 JS 代码中是没有意义的。因此,总而言之,对正常响应使用状态为 200 的 JSON 响应,并为错误返回(适当的!)4xx/5xx 响应。它们也可以携带 JSON 负载,因此您的服务器端可以添加有关错误的其他详细信息。

关于jquery - Django ajax错误响应最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com