在Javascript中获取json响应

时间:2015-04-18 20:38:41

标签: javascript json angularjs

我正在尝试从以下代码获取登录用户的状态。

var responsePromise = $http.get("http://www.vbought.com/wrangleit/api/user/generate_auth_cookie/?username="+$scope.username+"&password="+$scope.password+"&callback=?");
                responsePromise.success(function(data) {

                    console.log(data);
                });

这就是我在“数据”中得到的内容

({"status":"error","error":"Invalid username and\/or password."})

我想获取STATUS值。我无法用“data.status”或“data ['status']”来获取它。还有别的办法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

试图在浏览器中显示此页面,我得到了: ?({"状态":"错误","错误":"无效的用户名和/或密码。"})

然后删除了最后的'?',现在看起来像URL http://www.vbought.com/wrangleit/api/user/generate_auth_cookie/?username=%22+ $ scope.username +%22安培;密码=%22 + $ scope.password +%22安培;回调= 而且我得到了: {"状态":"错误","错误":"无效的用户名和/或密码。"}

不知道服务器做了什么,但看起来它并不像“'?'在末尾。只需删除它。

答案 1 :(得分:0)

您可以使用JSON.parse将字符串转换为具有“status”和“error”属性的JavaScript对象。你还应该删除'callback =?'请求的一部分。这将导致结果包含在'?()'中,因为它试图用你指定的名称调用一个函数(在这种情况下'?')。有关在请求中使用回调的详细信息,请参阅JSONP

<script>
  var request = new XMLHttpRequest();
  request.open('GET', "http://www.vbought.com/wrangleit/api/user/generate_auth_cookie/?username=foo&password=bar", /* async = */ false);
  request.send();
  var response = JSON.parse(request.responseText);
  document.write('status = "' + response.status + '"');
</script>