我收到了php = echo "{success: true, redirect: '/home', auth_key:'$auth_key'}";
的回声
并尝试解析它,但是遇到错误=
JSON.parse:预期属性名称或'}',位于 JSON数据
我尝试了jquery解析和普通的json.parse方法
$.ajax({
type: "POST",
url: "/login/process",
data: user,
success: function (response) {
var resp = $.parseJSON(response);
}
});
我想从回声中获取auth的值
答案 0 :(得分:1)
您的JSON无效。在jsonlint上尝试一下。如果向下滚动页面,则会看到常见错误和规则:
将收集键括在引号中。集合的正确格式是{“ key”:“ value”}
应该是:
echo '{"success": true, "redirect": "/home", "auth_key":"$auth_key"}';
JavaScript测试:
let invalidJson = "{success: true, redirect: '/home', auth_key:'$auth_key'}",
validJson = '{"success": true, "redirect": "/home", "auth_key":"$auth_key"}';
try {
console.log("invalid json", JSON.parse(invalidJson));
}
catch (e)
{
console.error(e);
}
try {
console.log("valid json", JSON.parse(validJson));
}
catch (e)
{
console.error(e);
}
如果您要创建一个硬代码json,我建议您创建一个Array
并使用json_encode()
来echo
。该函数将使用您的数据生成一个有效的json,您无需担心对其进行格式化。
答案 1 :(得分:1)
相反,您创建数组并将其保存为json并检查,
$a = ["success" => true, "redirect" => '/home', "auth_key" => $auth_key];
echo json_encode($a, JSON_UNESCAPED_SLASHES);die; //
JSON_UNESCAPED_SLASHES-不要逃脱/
。
输出
{"success":true,"redirect":"/home","auth_key":"123213123123"}
这将确保简短的json输出。