我将dataType设置为“text”,因为我不希望Jquery自动解析我的JSON。
我的代码如下:var membId = '5';
$('#submitNewDescription').live('click',function(){
//An ajax request is made to update the DB
$.ajax({
url: '../../cgi-bin/qualification.py',
type: 'POST',
data: ({newDescription:$('#newDescription').val(),id:membId}),
dataType: 'text',
cache: 'false',
success: function(data){
json = JSON.parse(data);
console.log(data);
console.log(json);
}
});
});
它返回这个字符串: {"error":["ORA-01031 insufficient privileges"]} 在两个console.log命令中。这意味着解析不起作用,因为它没有返回JavaScript对象。JSONLint告诉我这是一个有效的JSON。
有人知道发生了什么吗?
谢谢
编辑
我可以设置为'json',这不是问题。问题是JSON.parse和$.parseJSON应该工作。既然他们没有,我把'dataType'改成了'json',但是还是返回相同的字符串。我不知道发生了什么。
json
将不包含字符串,而是会变成undefined
。一定还有其他问题。确定json
不是一个对象吗?typeof json
返回什么?另外请注意,json
是一个全局变量(这是不应该的)。 - Felix Kling