以下是我的代码..
Ext.Ajax.request({
url:'test.jsp',
params:{id:id,password:password},
success:function(response){
console.log(response);
var results = Ext.util.JSON.decode(response.responseText);
if(results.success){
document.location.href="../home.jsp";
}
}
})
我收到错误说:
Uncaught Error: You're trying to decode an invalid JSON String:
和console.log显示
Object {request: Object, requestId: 1, status: 200, statusText: "OK", responseText: "↵↵↵↵↵"…}
如果我将代码更改为 (我使用url传递参数):
Ext.Ajax.request({
url:'test.jsp?id=' + id + '&password=' + password,
success:function(response){
console.log(response);
var results = Ext.util.JSON.decode(response.responseText);
if(results.success){
document.location.href="../home.jsp";
}
}
})
console.log将显示
Object {request: Object, requestId: 1, status: 200, statusText: "OK", responseText: "{success:true,msg:'success',url:'../main.jsp'}↵↵↵↵↵"…}
一切正常。
为什么会这样?
答案 0 :(得分:0)
你可以将true
传递给第二个参数,使其成为savemode。
// your code should like:
Ext.util.JSON.decode(response.responseText, true);
它不会解决您的问题,但删除错误。 你还需要检查你的json,确保它有效。
答案 1 :(得分:0)
空字符串不是有效的JSON。您可以运行JSON.parse('')
,它会抛出异常。
如果您运行JSON.parse('{}')
,那就没问题。