jQuery1.4破坏了我的程序
我使用jqueryajax请求从数据库中提取html 但是,如果有一个单引号('),我会得到一个解析错误 常规引号可以正常工作(“) 例如,在我的数据库中,我有:jQuery1.4破坏了我的程序,jquery,ajax,json,Jquery,Ajax,Json,我使用jqueryajax请求从数据库中提取html 但是,如果有一个单引号('),我会得到一个解析错误 常规引号可以正常工作(“) 例如,在我的数据库中,我有: style=font-family:"times' new roman" (我把“在测试之后”放在那里)随着“消失了,它工作了…” 我开始请求: $.ajax({ url: "phps/file.php?id="+id, dataType: "json", error: function(u
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()计算内容
谢谢!我会将您的PHP更改为:
header('Content-Type: application/json');
echo json_encode(array('code' => $code));
也就是说,将MIME类型更改为
application/json
,并使用PHP的本机而不是手动构建json。我认为最好使用:
或者您可以将字符串中的“with\”替换为我所看到的有效JSON。str\u replace(“\”,“\\”,$code)
或者,如果这两个选项都不起作用,则使用jQuery执行文本请求。不过,我不确定确切的语法
这个JSON验证器可能对您很有用:如果您发送JSON,为什么不使用encode_JSON?您是否尝试过
JSON_encode
而不是自己做?-。您确定您不是在寻找htmlentities
而不是mysql\u real\u escape\u string
?请注意style=font-family:times“new roman”
不是有效的HTML属性定义。HTML属性值必须被引用(不使用单引号或双引号),或者只能使用字符a
-z
,a
-z
,0
-9
,-
,
,
,
,,:
(请参阅)。
header('Content-type: application/x-json');
echo json_encode($results);`