質問

私は次の問題に直面してきます:

私達のデータベースでは、4040956363970588323のように、IDを持つオブジェクトを持っています。 私はそのようなオブジェクトと対話するための jQueryのの上でいくつかのクライアント・ウィザードを書いています。クライアントは次のように、アヤックスの要求トラフオブジェクトに関する基本データを受信します:

$.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!");
        }
})
ご覧のように、

だから、私は 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への変換に何かを間違って行くのです。あなたが値を書くとき、あなたはおそらく、必ずそれは文字列として扱われます作るために、その周りの引用符を配置する必要があります。

他のヒント

私にはオーバーフローの問題のいくつかの種類のように見えます。

それ

<のhref = "によるとhttps://stackoverflow.com/questions/307179/what-is-javascripts-max-int-whats-the-highest-integer-value-a-number-can-go- ">この議論は、SOにここには、JavaScriptが唯一最大INTが

の周りのどこかにあることを意味しており、大きさ2 ^ 64ののINTを扱うことができます
184467440737100000
ずっと未満である

4040956363970588323

編集:申し訳ありませんが、最大の正確な整数は2 ^ 53であるが、ケースは同じである

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top