[Solución] La consola analiza los datos de vista previa y respuesta de manera inconsistente y usa transformResponse para modificar los datos de respuesta.

pregunta

La consola analiza los datos de vista previa y respuesta de manera inconsistente.
Por ejemplo:

{id: 1246000001606460673}

// 会被默认解析成
{id: 1246000001606460700}

En Vista previa (función de vista previa), la consola convertirá automáticamente los datos json enviados al formato de objeto javascript.

Debido a que los datos son de tipo largo, una vez que se devuelven al navegador, habrá un problema cuando el navegador convierta el formato de los datos.

Después de que el front-end lo recibe, los siguientes dígitos se convierten en 0. Debido a las razones inherentes del tipo Número en JavaScript, no puede representar completamente el número de tipo Largo. Cuando la longitud Larga es superior a 17 dígitos, surge el problema de pérdida de precisión. ocurrira.

resolver

Solución 1: convierta los datos en una cadena antes de devolverlos . Opción 2: combine la biblioteca de código abierto json-bigint y use transformResponse para modificar los datos de respuesta
antes de pasarlos a then/catch .

hilo agregar json-bigint -S

import axios from 'axios'
import JSONbig from 'json-bigint'


      axios.defaults.transformResponse = [
        data => {
          const json = JSONbig({ storeAsString: true })
          const res = json.parse(data)
          return res
        }
      ]

Supongo que te gusta

Origin blog.csdn.net/weixin_46413834/article/details/132536902
Recomendado
Clasificación