Почему jQuery округляет значение?

Используя ajax, я запрашиваю ID аутентификации следующим образом:


Это неправильно, потому что настоящий HTTP-Transfer такой:

(Между прочим: типом ответа является "application/json;charset=UTF-8")

Я вижу столкновение между

-1369082024195183657 and 
-1369082024195183600

Как предотвратить округление или это ошибка?

2 ответа

Решение

Да, это ошибка. Сервер возвращает нелегальный JSON! Создан отчет: https://github.com/FasterXML/jackson-core/issues/291

jQuery пытается проанализировать HTTP-ответ как целочисленный на основе типа содержимого JSON.

> JSON.parse("-1369082024195183657")
-1369082024195183600

Вы можете переопределить его, сказав jQuery, что вы ожидаете строку, установив dataType недвижимость в $.ajax конфигурация:

$.ajax({ 
   dataType : "text", 
   url : "rest/Registration",
   success : function(data){
       // data should be "-1369082024195183657"
   }
})

Я полагаю, вам не нужно выполнять никаких арифметических операций с токеном authenticationID, так что вы можете просто сохранить его в виде строки.

Другие вопросы по тегам