我使用jquery ajax请求从我的数据库中提取html。
但是,如果有单引号('),我会收到解析错误。
常规报价正常(“)。
例如,在我的数据库中,我有:
style=font-family:"times' new roman"
(我经常把'放在那里进行测试)。随着它的消失......
我开始请求:
$.ajax({
url: "phps/file.php?id="+id,
dataType: "json",
error: function(uno,dos,tres){
我的php文件:
$code = mysql_real_escape_string($results['code']);
//return
header('Content-type: application/x-json');
echo '{';
echo '"code": "' . $code. '"';
echo '}';
jquery错误函数给了我:
[object XMLHttpRequest]
parsererror
undefined
我认为这是问题,但我不知道如何解决它:
我们现在严格关于传入的JSON,如果我们得到格式错误的JSON,则抛出异常。 如果您需要能够评估格式错误的JSON是有效的JavaScript,您可以发出文本请求并使用eval()来评估内容。
谢谢!
答案 0 :(得分:6)
我会将您的PHP更改为:
header('Content-Type: application/json');
echo json_encode(array('code' => $code));
即,将MIME类型更改为application/json
并使用PHP的本机json_encode()
,而不是手动构建JSON。
答案 1 :(得分:2)
我认为最好的办法是使用json_encode:
header('Content-type: application/x-json');
echo json_encode($results);`
或者您可以替换字符串中的“with \”,它应该是我能看到的有效JSON。 str_replace("\"", "\\"", $code)
或者,如果这些选项都不起作用,请使用jQuery执行文本请求。我不确定确切的语法。
此JSON验证程序可能对您有用:http://jsonformatter.curiousconcept.com/