我将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);
}
});
});
Run Code Online (Sandbox Code Playgroud)
它在两个console.log命令中返回字符串:{"error":["ORA-01031权限不足"]}.这意味着解析不起作用,因为它不返回JavaScript对象.JSONLint对我说这是一个有效的JSON.
任何人都知道发生了什么?
编辑
我可以设置'json',这不是问题.问题是JSON.parse和$ .parseJSON应该可以工作.由于它们不是,我将'dataType'更改为'json',但返回相同的字符串.我不知道发生了什么.
可能是因为你正在寻找$.parseJSON
?另外我认为 jQuery会查看数据并在解析之前做出最佳猜测,然后再将其传递给回调.所以,如果它看起来像JSON的机会是jQuery已经给你一个JavaScript对象,然后无法使用JSON.parse
/ 重新解析$.parseJSON
.
您也可以将您的dataType
字段更改为'json'并让jQuery为您执行此操作...
归档时间: |
|
查看次数: |
30200 次 |
最近记录: |