AJAX接收PHP返回的JSON数据中有HTML标签代码报错
更新:2023-05-22 10:20:16
人气:1570
来源:本站原创
A+
报错信息记录:Bad control character in string literal in JSON,JSON.parse(str)/Uncaught SyntaxEr报错解决方法。
原因分析:
JSON.parse()方法将有效的 JSON 字符串数据转换为 JavaScript 对象,内部不能包含转义字符。
解决方案:
将JSON转为JS对象前,先处理字符串
text = text.replace(/[\r|\n|\t]/g,“”)
这句把代码将\r,\n,\t 都替换为空。
后台用PHP返回的JSON数据:
$table_box='<table cellspacing=0 cellpadding=0 align=center><tr style=height:50px;><td style=width:55%;text-align:center;overflow:hidden;background:#E8F8FF >培训班名称</td><td style=width:15%;text-align:center;overflow:hidden;background:#E8F8FF>应报到人数</td><td style=width:15%;text-align:center;height:50px;hoverflow:hidden;background:#E8F8FF>已报到人数</td><td style=width:15%;text-align:center;height:20px;hoverflow:hidden;background:#E8F8FF>未报到人数</td></tr><tr><td colspan="4" align="center">----</td></tr></table>';
echo '{"back_status":"ok","table_info":"'.$table_box.'"}';
exit;
具体前端JS代码:
var ajaxform=$.post("anniu_action.php",{action:'get_userinfo_housiwei'},function(result){
result = result.replace(/[\r|\n|\t]/g,"")//将JSON转为JS对象前,先处理字符串内部不能包含转义字符。这句把\r,\n,\t 都替换为空。
result_str = JSON.parse(result);
if (result_str.back_status=='ok'){
if (result_str.sfz_num==1){
$("#xueyuan_card").val(result_str.sfz);
}else{
$("#xingming").html('');
$("#sfz").html('');
}
}else{//失败会初始化
error_tishi(result_str.msg)
}
})
以上就是AJAX接收PHP返回的JSON数据中有HTML标签代码报错的相关处理方法。
推荐的文章
随手记
PHP经验分享
- ● Pluginmysql_native_passwordreported:''mysql_native_password'isdeprecate问题
- ● PHP实现计算CRC-16/MODBUS校验位
- ● MySQLSUM在没有符合查询条件时返回结果为空的处理办法
- ● 如何开启PHP8的JIT提升运行速度
- ● 钉钉API接口-用PHP+Curl实现获取用户信息
- ● 钉钉API接口-用PHP+Curl实现获取应用Access_Token
- ● 在PHP中使用CURL,“撩”服务器只需几行——phpcurl详细解析和常见大坑
- ● mysql参数调优之innodb_thread_concurrency、innodb_concurrency_tickets合理的使用cpu性能
- ● PHP用fsockopen检测指定IP端口是否开启可用
- ● PHP用socket检测服务器IP端口是否开放?代码示例