HTTP status code for “success with errors”?

后端 未结 3 1864

I\'ve poked around a bit, but I don\'t see an HTTP status code for when a request\'s succeeds, but there is an error after the \"point of no return\".

e.g., Say you

3条回答
  •  天涯浪人
    2021-01-04 14:55

    HTTP doesn't have such a status code, but there is a best practice that allows you to handle such situations - redirect the user after a POST operation.

    Here is a break down -

    1. A POST request tries to modify data on the server
    2. If the server fails, it sends a 500 error to indicate failure
    3. If the server succeeds, it sends a 302 redirect response
    4. The browser then sends a fresh GET request to the server
    5. If this fails, you get a 500 error, otherwise you get a 200

    So, your use case of 'Saved data but can't retrieve it immediately' translates to a 302 redirect for the initial POST, followed by a 500 for the subsequent GET.

    This approach has other advantages - you get rid of the annoying 'Are you sure you want to resubmit the data?' message. Also keeps your back/forward/refresh buttons usable.

提交回复
热议问题