我有这个脚本:
<script>
function postForm() {
$.post("rest/login", $("#myform").serialize()).done(function(data) {
if(data.status === "OK"){
window.location.replace("coursesform.jsp");
alert(data);
}
else alert (data.status);
//alert("Invalid credentials. Please use the same username and password you'd use for a SoCS machine.");
});
}
</script>
我更改了登录API从简单输出的内容:
{"status":"OK"}
输出用户ID:
{"status":"{au:true, id:testtutor}"}
如何提取“true”和“testtutor”?
我试过了:
var obj = JSON.parse(status.data);
所以我可以做obj.au
然而我收到了这个:
但是,我在浏览器中收到了这个:
VM701:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
答案 0 :(得分:0)
{"status":"{au:true, id:testtutor}"}
删除&#34;围绕{au:true,id:testtutor}, 做到这一点
{"status":{au:true, id:"testtutor"}}
然后你将能够通过status.au获得au,并通过status.id获取id
您收到错误是因为"{au:true, id:testtutor}"
不是有效的JSON,而是{"au":true, "id":"testtutor"}
,但您不能这样做,因为您已经拥有了&#34;在它周围。
答案 1 :(得分:0)
您的API未返回有效的JSON,或者至少没有按照您期望的方式返回。你的密钥应该是JSON中的字符串,所以你应该返回类似的东西:
{
"status": {
"au": true,
"id": "testtutor"
}
}
... JSON.parse()
将能够解析。