呼叫:
$.ajax({
type: "POST",
url: 'http://blahblah/cow.php',
contentType: "application/json",
data: {
'guid': '111',
'score': 592,
'initials': 'tod'
},
success: function (data) {
try {
//alert(data + " -- " + data.length);
if (data.length > 0) {在我的php页面中这样做:
echo ('[{error : "' . $error . '", rank : "' . $usersRank . '", totalScores : "' . $totalScores . '"}]');但JQ只是一直将其视为文本,而不会将其识别为JSON……我做错了什么?
我试着去掉方括号(什么都不用),使用json_encode --但是在我的变量中添加引号仍然不起作用,尝试在php页面中添加标题(COntent类型)……啊!我想不出来!
我是不是必须把它叫做DIE或者类似的东西(有点像Response.end)?
发布于 2012-01-08 12:27:18
我不知道我做错了什么,但我最终还是这么做了。我不再在php中使用Content-type,或者在ajax调用中使用dataType,而只是获取数据'string‘并调用
var obj = jQuery.parseJSON(data);然后在上面做我想做的事。
发布于 2012-01-08 11:28:46
data包含传输对象的responseText的值。要让success回调将其视为JSON,您需要将php页面上的content-type头显式设置为application/json,或者将ajax配置对象的type属性设置为json。
或者,您也可以使用$.ajax({dataType:"json"})的简写$.getJSON。
发布于 2012-01-08 11:25:43
JSON要求要引用的键和值。你只是在引用价值。不要手动生成JSON。引入语法错误太容易了。让PHP为您完成此操作:
$data = array(
'error' => $error,
'rank' => $usersRank,
etc..
);
echo json_encode($data);https://stackoverflow.com/questions/8775136
复制相似问题