gpt4 book ai didi

javascript - 将大表单数字从 javascript 转换为字符串

转载 作者:行者123 更新时间:2023-11-28 06:48:46 24 4
gpt4 key购买 nike

我有一个可以查找 DB2 tech_id 的表单。 tech_id 是一个 26 位数字。我想通过 ajax 将其作为字符串传递到我的后端进程,但每次转换时:

2.015052714252E+25

这破坏了后端代码。

我认为通过使用toString函数我可以解决这个问题,但没有运气。这是 jquery 部分:

$('form').submit(function(event) {
var id = $('#tech_id').val().toString(); // the form input with the tech_id
$.ajax({
type: 'POST',
url: 'do_stuff',
data: {id: id}, // also tried data: {id: id.toString()} here
dataType: 'json',
encode: true
})

然后在后端我像这样传递它,再次尝试将其转换为字符串:

    $techid = $content['id']; // from the PHP $_POST array
$host = 'my_API_endpoint';

$url = $host."/user/".$techid;

$results = file_get_contents((string) $url);

我不断收到以下错误:

file_get_contents(http:my_api_endpoint/user/2.015052714252E+25): failed to open stream: HTTP request failed! HTTP\/1.0 500 Internal Server Error

知道问题出在哪里吗?

编辑:我已将范围缩小到 Controller 中的表单处理程序,它会自动 json_decodes 所有输入。这是 json_decode 函数(在 php 中)正在转换字符串。

最佳答案

JavaScript 没有 BigInteger 类型,因此它会转换为指数形式。基本上,为了处理此类案件,人们使用了很多技术。

还有很多库可以处理这个问题。像BigInt , BigNumber等等,

但对于你的情况,据我了解,我建议尝试将 26 位数字转换为十六进制并将其发送到后端。在后端再次将其从十六进制转换回整数。

我的意思是尝试使用这个

 $('form').submit(function(event) {
var id = $('#tech_id').val().toString(16); // this converts to hexa
$.ajax({
type: 'POST',
url: 'do_stuff',
data: {id: id}, // this will be a String in hexa format.
dataType: 'json',
encode: true
})

关于javascript - 将大表单数字从 javascript 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33160092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com