我尝试使用XMLHttpRequest连接带有php文件的chrome扩展。
工作正常,但我可以使用JSON.parse解码Json。
Js文件:
var client = new XMLHttpRequest();
client.onreadystatechange = function() {
if (client.readyState == XMLHttpRequest.DONE) {
var j = client.responseText;
console.log(j);
}
}
client.open("GET", "http://localhost/extencio/index.php?"+o, true);
client.send();
在php文件中,我返回一个对象:
echo json_encode($oFinal);
console.log(j); 的结果是:
{ “textoDonde”: “农布雷”, “值”: “的getText”, “东德”: “名称”} { “textoDonde”: “apellido”, “值”: “的getText”, “东德”:” name“} {”textoDonde“:”sexo“,”value“:”TyPE no detectoado“,”donde“:”name“} {“textoDonde”:“sexo”,“value”:“TyPE no detectoado”,“donde”:“name”}
我在js文件中更改此行以进行解码:
var j = JSON.parse(client.responseText);
但还有其他错误:
未捕获的SyntaxError:意外的令牌{client.onreadystatechange @ popup.js:66 VM71:1未捕获的SyntaxError:意外的令牌{client.onreadystatechange @ popup.js:66
66是“var j”行。
答案 0 :(得分:1)
您的JSON输出无效。输出中有多个对象。你想要一个对象数组吗?试试这个:
[{"textoDonde":"nombre","value":"getText","donde":"name"},{"textoDonde":"apellido","value":"getText","donde":"name"},{"textoDonde":"sexo","value":"TyPE no detectoado","donde":"name"},{"textoDonde":"sexo","value":"TyPE no detectoado","donde":"name"}]
通过像http://jsonlint.com/这样的linter运行JSON以查看它是否有效。