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