簡體   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