繁体   English   中英

发回服务器端错误-JavaScript和PHP

[英]Sending back server-side errors - JavaScript and PHP

从正在访问数据库的服务器端脚本向客户端返回错误消息的最佳实践是什么?

例如,假设客户端使用AJAX POST从数据发送,并希望服务器返回一些JSON数据以显示。 如果PHP服务器脚本无法连接到数据库(我正在使用mysqli_connect())怎么办? 我是否必须发回带有错误消息的显式JSON数据? 还是可以在客户端POST回调函数中使用状态对象?

HTTP规范实际上提供了错误代码503 Service Unavailable ,我认为在这种情况下适用:

由于暂时的服务器过载或维护,服务器当前无法处理该请求。 这意味着这是一个暂时性状况,经过一段时间的延迟后会缓解。 如果知道的话,延迟的长度可以在Retry-After头中指出。 如果没有给出Retry-After,则客户端应该像处理500响应那样处理响应。

仅此状态代码就足以让客户端知道错误(任何4xx或5xx都是错误),但是您的应用程序将必须确定应发送的内容。 如果客户端需要JSON(请参见Accept标头),则向他们发送JSON内容是有意义的。 但是,HTTP状态代码是确定是否存在问题的编程方式。

很大程度上取决于应用程序的性质和客户端类型。

例如,如果它是一个内部Web应用程序,则很有用的是发回错误代码,错误消息,导致错误的文件,甚至可能是完整的堆栈跟踪。

如果它是随机客户使用的公共网站,则应足以发送回不公开的错误消息,即:“发生错误,请在几分钟后重试”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM