我正在使用AJAX从PHP获得响应,它可以解决所有问题,现在我在以下代码中从普通回声更改为JSON回声:
echo $_GET["jsoncall"].'({"posts": [';
echo '
{
"canvasUniqueId":"'.$uniqueId.'",
"canvasUserId":"'.$userId.'",
"canvasFile1":"'.$imageFile1.'",
"canvasFile2":"'.$imageFile2.'"
},';
echo ']})';
然后我在完成AJAX以在HTML元素中设置文本时获取此数据,但是我收到错误,控制台说:意外的非法令牌。
我为提出一个糟糕的问题而道歉,但似乎很难解决,我无法弄明白。
答案 0 :(得分:2)
停止尝试手动编写JSON。 PHP内置了一些工具,可以为您正确地转义内容。构建真实的数据结构,然后对其进行编码。它使得查看正在发生的事情变得更加容易,并且不易出错。
<?php
$data = Array(
"posts" => Array(Array(
"canvasUniqueId" => $uniqueId,
"canvasUserId" => $userId,
"canvasFile1" => $imageFile1,
"canvasFile2" => $imageFile2
))
);
header("Content-Type: application/javascript");
# Defend against Rosetta attack
# http://miki.it/blog/2014/7/8/abusing-jsonp-with-rosetta-flash/
header("Content-Disposition: attachment; filename=f.txt");
header("X-Content-Type-Options: nosniff");
echo "/**/";
# Now output JSONP
echo $_GET["jsoncall"] . "(" . json_encode($data) . ")";