<p>axios no debe lanzar respuestas HTTP válidas</p>

Creado en 9 oct. 2016  ·  3Comentarios  ·  Fuente: axios/axios

¿Por qué axios arroja status < 200 || status >= 300 ? ver valores predeterminados.js#L84
Un error HTTP 500 significa que llegamos al servidor e incluso recibimos una respuesta válida usando el protocolo http.

Desde el punto de vista de la aplicación, un error HTTP 500 podría considerarse una excepción, pero se encuentra en un nivel de abstracción diferente y no tiene ninguna relación con la abstracción HTTP.

Para ser compatible con las próximas especificaciones de búsqueda, creo que es importante que axios no se arroje en caso de respuestas HTTP válidas.

La especificación de recuperación especifica una propiedad response.ok , para que el desarrollador de la aplicación pueda identificar fácilmente el resultado de la operación HTTP. Creo que un enfoque similar podría ser útil para axios.

Consulte aquí para obtener más detalles sobre la especificación de recuperación:
https://fetch.spec.whatwg.org/#dom-response-ok
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch

Comentario más útil

Correcto, pero mi punto es que este no debería ser el valor predeterminado. De hecho, esto ni siquiera debería ser configurable.

Todos 3 comentarios

Creo que puede usar la opción de configuración de validateStatus para resolver siempre cuando hay una respuesta del servidor. de los documentos:

// `validateStatus` defines whether to resolve or reject the promise for a given
// HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
// or `undefined`), the promise will be resolved; otherwise, the promise will be
// rejected.
validateStatus: function (status) {
  return status >= 200 && status < 300; // default
}

Correcto, pero mi punto es que este no debería ser el valor predeterminado. De hecho, esto ni siquiera debería ser configurable.

Entendemos su preocupación, pero Axios no pretende reemplazar fetch ni imitar su comportamiento. Ni siquiera lo usamos como adaptador para hacer las llamadas (nos limitamos a XHR por el momento).

Axios intenta ser lo más configurable posible proporcionando los valores predeterminados que utilizará la mayoría de la gente. En este caso, las personas tienden a verificar el código de estado justo después de una respuesta del servidor. P.ej:

fetch(url).then(verifyStatus).then(...);

Es por eso que existen paquetes como fetch-check-http-status .

Queremos evitar esa estructura que se repite con tanta frecuencia. Si desea resolver con una respuesta válida del servidor, siempre puede establecer validateStatus: false .

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

reggi picture reggi  ·  3Comentarios

varmeh picture varmeh  ·  3Comentarios

airtonix picture airtonix  ·  3Comentarios

altruisticsoftware picture altruisticsoftware  ·  3Comentarios

shaosh picture shaosh  ·  3Comentarios