使用fetch进行数据请求时报json错误

Posted confucius-dream-zhougong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用fetch进行数据请求时报json错误相关的知识,希望对你有一定的参考价值。

使用fetch进行数据请求返回response对象,response.json报错。原因是response中含有特殊字符。

fetch(url).then(response => response.json())
  .then(data => console.log(data))
  .catch(e => console.log("Oops, error", e))

取消response.json()调用,使用response.text()返回请求数据的字符串,对特殊字符进行转义替换处理后,再进行json对象化传入请求成功的回调函数中。transSpecialChar是对字符串处理的函数

interface Body {
    readonly body: ReadableStream<Uint8Array> | null;
    readonly bodyUsed: boolean;
    arrayBuffer(): Promise<ArrayBuffer>;
    blob(): Promise<Blob>;
    formData(): Promise<FormData>;
    json(): Promise<any>;
    text(): Promise<string>;
}
response.text().then((text) => {
    const json = JSON.parse(this.transSpecialChar(text));
    successCallBack(json);
}

以上是关于使用fetch进行数据请求时报json错误的主要内容,如果未能解决你的问题,请参考以下文章

sringboot2+shiro json接口形式未登录时报https中有http请求错误

vue跨域请求时报403

post数据时报错:远程服务器返回错误: (400) 错误的请求。

使用fetch-mock和isomrphic-fetch模拟post请求时,res.json()是未定义的

weex stream 之fetch的getpost获取Json数据

JS Fetch