我遇到了下一个问题:
在我们的数据库中,我们有带有id的对象,如4040956363970588323.我正在jQuery上编写一些客户端向导,用于与这些对象进行交互.客户端通过Ajax请求接收有关对象的基础数据,如:
$.ajax({ url: "/api/pages/", type: "get", dataType: "json", data: {"id": site_id}, success: function(data){ if (data.success){ for (var pidx in data.pages){ console.log(data.pages[pidx].id); var li = $(''); var idf = $(''.format(data.pages[pidx].id)) var urlf = $(''.format(data.pages[pidx].url)) li.text(data.pages[pidx].title); li.append(idf); li.append(urlf); $("#selectable_pages_assign").append(li); } pages_was = $("#selectable_pages_assign>li"); } else updateTips(data.message); }, error: function(){ updateTips("Internal erro!"); } })
所以,正如你所看到的,我发送的数据就像JSON对象(一些服务器代码):
return HttpResponse(dumps({ "success": True, "pages": [{"id": page.id, "title": page.title, "url": page.image} for page in Page.objects.filter(site = site)] }))
根据Firebug,服务器发送数据中的右ID,但输出console.log(..)
不是正确的id(4040956363970588323)id 4040956363970588000
.
为什么会这样?
没有正确的ID,任何机会,我的向导将正常工作:)
我的猜测是转换为JSON时出错了.当你写这个值时,你可能需要在它周围加上引号,以确保它被视为一个字符串.