如何通过xhr响应从json对象获取一些字段

时间:2017-01-06 02:35:27

标签: javascript json cordova xmlhttprequest

我的json对象看起来像这样 { “地位”: “4”,  “detail_user”:{     “userId”:“1”,     “fullName”:迪加     } }

和我的XmlHttpRequest

var email    = $$(page.container).find('input[name="email"]').val();
var password = $$(page.container).find('input[name="password"]').val();
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200){ 
  //var response = JSON.parse(xhr.responseText);
  //alert(response.status);
  //alert(response.detail_user);
  var data=xhr.response;
  var data2=xhr.responseText; // respon like json object above
  alert(data);
  alert(data2);
  alert(data2.detail_user);
  alert(getJSON(data2.status)); //respon undefined
  var asd = JSON.stringify(data2).replace(/\"/g,"");
  alert(asd);
  console.log(xhr.response);//this is the response from the server
  }
}
params = "email=" + email + "&password=" + password;
xhr.open("POST", server+"sign-in/auth",true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.setRequestHeader("Content-length", params.length);
xhr.setRequestHeader("Connection", "close");
xhr.send(params);

我在cordova和phonegap中的编码,实际上用于显示json成功的所有对象,但是当我只显示某些字段时,我得到的响应未定义。

2 个答案:

答案 0 :(得分:0)

您的data2是一个字符串,因此没有属性status。变化:

alert(getJSON(data2.status));

alert(getJSON(data2).status);

我假设函数getJSON()正在返回JS对象。

答案 1 :(得分:0)

JSON.parse(data, (key, value) => {

的console.log(键); //记录当前属性名称,最后一个是""。   回报值; //返回未更改的属性值。 });