$.getjson遇到的几个问题-json返回数据中带有html标签的输出
1. invalid label错误
分为两种情况
- 同域情况
- 跨域情况
同域情况:
使用eval将返回回来的json翻译成response
var json = eval('(' + myjson + ')');
跨域情况下:
第一需要:url带有callback=?
第二还需要,在输出的时候把callback值输出![]()
$dal = $_GET[‘callback’];
echo $dal.'('.json_encode($retData1).')';
注意:$dal 和json数组链接的时候,json数组需要括号包含
2.输出带有html标签的json数据
想在json数据中带有html标签的值,但是在执行的时候是失败的原因:
由于 / 被处理为\/,浏览器认为标签不完整,将标签给自动补齐而导致多了标签。
解决办法:
$json=json_encode($result);
$myjson=strtr($json, array('<'=>'\u003C',">"=>'\u003E'));
echo $myjson;
如果若phpversion>5.3.0 可以 echo json_encode($a,JSON_HEX_TAG);