fetch获取json的正确姿势

Posted 【云】风过无痕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fetch获取json的正确姿势相关的知识,希望对你有一定的参考价值。

fetch要求参数传递,遇到请求无法正常获取数据,网上其他很多版本类似这样:

    fetch(url ,{
        method: ‘POST‘,
        headers:{
                    ‘Accept‘: ‘application/json, text/plain, */*‘,
                    ‘Content-Type‘: ‘application/json‘
        },
         body: JSON.stringify({a:1,b:2})
    }).then(function(response){
        return response.json();
    }).then(function(data){
         console.log(data);
    });

经过改进和测试,如下:

var ur = ‘xxx‘,params = {page:1,rows:10},param=‘‘;
for(var key in params){
  param += key + ‘=‘ + params[key] + ‘&‘;
}
if(param) param = param.substring(0,param.length-1);
var requestConfig = {
  method: ‘POST‘,
  credentials: ‘include‘,
  headers: {
    ‘Accept‘:‘application/json, text/plain, */*‘,
    ‘Content-Type‘: ‘application/x-www-form-urlencoded‘               
  }      
};
Object.defineProperty(requestConfig,‘body‘,{
    value: param
});
fetch(url,requestConfig).then(function(res){
   return res.json(); 
}).then(function(json){
   console.log(json.data);
});

 

以上是关于fetch获取json的正确姿势的主要内容,如果未能解决你的问题,请参考以下文章

如何在 React 中正确地 fetch() JSON

获取ip的正确姿势

Fetch api - 在 then 和 catch 块中获取 json 主体以获取单独的状态代码

无法从 React Native 中的 JSON 数组正确获取数据

Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势

Mysql 学习总结(86)—— Mysql 的 JSON 数据类型正确使用姿势