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);
});

 

posted @ 2017-08-29 10:26  【云】风过无痕  阅读(4415)  评论(0编辑  收藏  举报