I ran into the following problem:
Our database has objects with identifiers, such as 4040956363970588323. I am writing some jQuery client master to interact with such objects. The client receives basic data about objects through an Ajax request, for example:
$.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 = $('<li class="ui-widget-content"></li>'); var idf = $('<input type="hidden" id="pid" value="{0}"/>'.format(data.pages[pidx].id)) var urlf = $('<input type="hidden" id="purl" value="{0}"/>'.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!"); } })
So, as you can see, I am sending data such as a JSON object (server code bit):
return HttpResponse(dumps({ "success": True, "pages": [{"id": page.id, "title": page.title, "url": page.image} for page in Page.objects.filter(site = site)] }))
According to Firebug , the server sends the correct identifiers in the data, but console.log(..) instead of the correct id (4040956363970588323), the outputs are id 4040956363970588000 .
Why is this happening?
Without access rights, any chance that my master will work correctly :)
javascript jquery floating-point floating-accuracy
Anton Koval '
source share