我有来自jQuery的AJAX调用
function Admin_Ajax_pop_rows(){
$(document).ready(function(){
variable1= 'none';
$.ajax({
type: "POST",
url: "/someurl",
dataType: "json",
data: JSON.stringify({"variable1": variable1})
})
.success(function(data){
alert('success response: ' + data + ' number of rows : ');
})
.done(function(data){
alert ('rows : ' + data.return_rows);
MakeTablejQuery(data);
})
.fail(function(error){
alert('error status is : ' + error.status + ' text: ' + error.statusText + ' response text : ' + error.responseText);
});
});
}
在我的Python服务器代码中我有
def post(self):
user_key = ndb.Key(self.user_model,'value')
user_key_parent = user_key.parent()
user_query = self.user_model.query(ancestor = user_key_parent).order(ndb.GenericProperty(sort_field))
query_data = user_query.fetch(i, projection=[ndb.GenericProperty('name'),ndb.GenericProperty('last_name'),ndb.GenericProperty('email_address')])
table_prop_data = { 'return_rows': 9 , 'return_cols' : 8}
return_table_prop_data = []
return_table_prop_data = json.dumps(table_prop_data)
return_data = []
return_data = json.dumps([dict(p.to_dict(), **dict(id=p.key.id())) for p in query_data],default = date_handler)
self.response.headers['content-type']=("application/json;charset=UTF-8")
self.response.out.write(return_data)
self.response.headers['content-type']=("application/json;charset=UTF-8")
self.response.out.write(return_table_prop_data)
我收到错误" 200"状态为"解析错误"
JSONLint显示JSON错误
Parse error on line 74:
...662981951488 }]{ "return_cols":
---------------------^
Expecting 'EOF', '}', ',', ']'
我在GAE上使用Webapp2
Per Felix'建议我尝试使用以下内容创建字典 -
return_data = json.dumps({'table_props': dict(table_prop_data), 'query_data' : [dict(p.to_dict(), **dict(id=p.key.id())) for p in query_data],default = date_handler})
我收到语法错误。请帮我解决这个问题。这是我的date_handler函数。我需要这个来处理查询中的Datetime字段。
def date_handler(obj):
return obj.isoformat() if hasattr(obj, 'isoformat') else obj
答案 0 :(得分:1)
您似乎尝试在单个响应中返回两个单独的JSON blob。这可以起作用,正如您可以通过jsonlint错误看到的那样。整个响应必须是一个JSON blob。