angular.js解析整数错误
angular.js parsing integer incorrectly
我正在使用angular对我自己的REST API进行AJAX调用。
$scope.authenticate = function() {
$http({
headers: httpHeaders,
url: '/something/',
method: "POST",
data: { 'userId' : $scope.userId, 'password': $scope.password },
cache: false
})
.success(function(response, status) {
console.log(response);
var ourstring = JSON.stringify(response);
console.log(ourstring);
$scope.authenticate_data = response;
$scope.sessionId = response.sessionId;
$scope.cookie = response.cookie;
$scope.message = "You have successfully authenticated."
});
}
不知怎的,angular错误地解析了整数,在Chrome检查器的网络选项卡中,调用显示以下内容:
请求选项卡
{"sessionId": 115053508782199126, "cookie": "JSESSIONID=E61DD3443AE9E119060A637CF039936B; Path=/webservice"}
预览选项卡(存储在范围中的值)
{"sessionId":115053508782199120,"cookie":"JSESSIONID=E61DD3443AE9E119060A637CF039936B; Path=/webservice"}
当我在后端将整数包装为字符串时,一切都很好。然而,我真的很想了解是什么导致了这个错误。
相关链接:Angular$resource无法正确解析整数响应
JavaScript中没有纯整数变量
相反,我们所拥有的只是Number
,它们被存储为IEEE754浮点值。根据ECMAScript标准,我们有:
注意,所有大小不大于2^53的正整数和负整数都可以用数字类型表示(实际上,整数0有两种表示,+0和−0)。
请注意,这并不意味着在JavaScript中可表示的最大整数是2^53,而是意味着一旦大于这个整数,就只能表示一些整数。一旦您用完了IEEE754浮点表示的53位尾数,整数之间就会开始出现间隙。
您的示例会话ID 115053508782199126
比2^53
大得多,因此最接近它的整数浮点值是115053508782199120
。所以,你需要使用字符串。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 错误:格式为整数的 javascript 键无效
- 如何在node.js中设置mysql连接,以在带无符号整数的算术上抛出超出范围的错误
- 错误:GM_setValue不支持的类型.支持的类型包括:字符串、布尔值和 32 位整数
- 我在 JavaScript 中将整数转换为文本时遇到错误
- AngularJS 表单验证 - 类型错误:无法设置未定义的属性“整数”
- 将一个长数字分解为其组成整数时出现奇怪错误
- angular.js解析整数错误
- 我如何避免或围绕地板函数和错误表示的整数工作
- Firebase App Script getData() optQueryParameters出现整数错误
- 对于以整数开头的id,无法识别的表达式出现错误
- 在javascript中,输入的电话号码应该只是整数,如果插入了除整数以外的任何东西,则会给出错误
- 为什么当我给他一个负数和一个正数时,我的 JS 随机整数生成器如此错误
- 条带错误 'exp_month' 参数应该是一个整数(而是未定义的)PHP / Stripe.js
- 字符串解析——为什么在javascript中将输入数组元素全部解析为整数时会出现运行时错误