我正在发送一个带有2个post值的ajax请求,第一个是“ action”,它定义了我的php脚本必须解析的动作,另一个是“ id”,它是要为其解析脚本的用户的ID。 服务器在array()中返回6个值,然后使用PHP函数将其编码为JSON:json_encode(); 我的一些响应为HTML,但是当我将其编码为JSON时,它会转义,"/"因此"\/" 如何禁用它?
json_encode();
"/"
"\/"
当我不知道如何在获得服务器响应时在jQuery中显示此消息时,我只是认为将其全部放入div只会显示我所请求的数字和HTML代码,但它将按原样显示数组用PHP编码。
的PHP
$response = array(); $response[] = "<a href=''>link</a>"; $response[] = 1; echo json_encode($response);
jQuery的:
$.ajax({ type: "POST", dataType: "json", url: "main.php", data: "action=loadall&id=" + id, complete: function(data) { $('#main').html(data.responseText); } });
如何使它能够工作JSON?
您需要致电
$.parseJSON();
例如:
... success: function(data){ var json = $.parseJSON(data); // create an object with the key of the array alert(json.html); // where html is the key of array that you want, $response['html'] = "<a>something..</a>"; }, error: function(data){ var json = $.parseJSON(data); alert(json.error); } ...
请参阅 http://api.jquery.com/jQuery.parseJSON/
如果仍然有斜杠的问题:搜索security.magicquotes.disabling.php 或: function.stripslashes.php
注意:
此答案适用于那些尝试$.ajax将dataType属性设置为json,甚至响应类型错误的人。header('Content-type: application/json');在服务器中定义可以解决此问题,但是如果您要返回text/html或任何其他类型,则该$.ajax方法应将其转换为json。我做一个测试与旧版本的jQuery和唯一版本后1.4.4的$.ajax力的任何内容类型转换为dataType通过。因此,如果您有此问题,请尝试更新jQuery版本。
$.ajax
dataType
json
header('Content-type: application/json');
text/html
1.4.4