我的AJAX电话是
function xml_getsitepage($idsite){
$.ajax({
url: 'public/xml/xml_getsitehtml.php',
dataType: 'JSON',
data: {
"id":$idsite
},
type: 'POST',
success: function (response) {
$("#nav").html(response.nav);
}
});
return;
}
'public / xml / xml_getsitehtml.php'的最后几行是
$arr['htmlnav']=$htmlnav;
$arr['htmlcontain']=$htmlcontain;
$arr['isOK']="Is OK";
}else{
$arr['htmlnav']='Failed1';
$arr['htmlcontain']='Failed1';
}
}else{
$arr['htmlnav']='Failed2';
$arr['htmlcontain']='Failed2';
}
echo json_encode($arr);
exit;
萤火虫响应标签显示全部为“< / button>” JSON选项卡正确显示的位置
我在网上搜索但找不到任何帮助我的东西。
我无法在浏览器中“看到”数据并且#nav仍为空白,但如果我手动将html与\去除,则显示确定。
答案 0 :(得分:1)
默认情况下,PHP json_encode
将在字符串中转义/
个字符。
此:
"\/"
和"/"
是/
个字符的两个不同但有效且相等的JSON表示。</script>
在字符串中间结束脚本元素。无论你遇到什么问题,它都与逃脱的斜杠无关。
如果是,那么您生成的HTML中会包含一些无效的结束标记,这些标记将被忽略或视为文本。因此,您可以在按钮中获得更多文本内容。
你的问题就是这个不匹配:
$arr['htmlnav']=$htmlnav;
response.nav
您正在写信htmlnav
但是正在尝试阅读nav
。
答案 1 :(得分:0)
正在逃避斜线。在前端收到字符串后,只需将字符串取消即可。
或者,如果您感到懒惰,可以在PHP脚本中禁用转义功能:
echo json_encode($arr, JSON_UNESCAPED_SLASHES);