Javascript 用谷歌脚本发布的非常奇怪的错误帖子

Javascript 用谷歌脚本发布的非常奇怪的错误帖子,javascript,parsing,google-apps-script,Javascript,Parsing,Google Apps Script,我正试图用谷歌应用程序发帖子 function makePost(url,page,status,token) { var form = { "page" : 1, "statuses[]": status.toString().toLowerCase(), } var options = { 'method': 'post', 'headers' : {"Authorization" : "BASIC "+token}, 'contentType

我正试图用谷歌应用程序发帖子

function makePost(url,page,status,token) {
var form = {
    "page" : 1,
    "statuses[]": status.toString().toLowerCase(),    
}
var options = {
    'method': 'post',
    'headers' : {"Authorization" : "BASIC "+token},
    'contentType': 'application/x-www-form-urlencoded',
    'payload' : form,
};
var response = UrlFetchApp.fetch(url, options);
var jsonResponse = JSON.parse(response.getContentText());
return jsonResponse;}
问题似乎是页面已经过了1.0,这使得目标url在尝试强制转换时返回错误

我已经试过答案了

我不能将其作为字符串传递,因为在这种情况下,API返回的结果具有奇怪的行为

是否可以在不将其更改为1.0的情况下将其作为整数传递

任何建议或帮助都是有益的, 谢谢

更新:所以,我找不到实现这一目标的方法。UrlFetchApp每次都会更改它。幸运的是,我们可以通过排序API中的响应来解决它,传递字符串的行为不再是不稳定的


谢谢你的帮助和建议

这里也一样,它与Stripe REST连接,后者强制执行基于表单的主体。这一定是UrlFetchApp的一个bug

当我使用

payload: {
  amount: 1000,
  currency: 'USD',
}
UrlFetchApp始终将其编码为,注意小数点。0

"payload":"amount=1000.0&currency=USD"
但我通过将其转换为字符串来解决它

payload: {
  amount: String(1000),
  currency: 'USD',
}
奇怪的是,有效载荷现在将被正确编码到

"payload":"amount=1000&currency=USD"

由于未指定值的类型,因此在本例中为数字字符串或整数。这是解释值的服务器实现。

如果将1作为字符串传递为“page”:“1”,会发生什么?不,它们不是异步的。我调试并看到请求是用1.0发送的,如果我以“1”的形式传递,它可以工作,但不是API所期望的,所以没有给出正确的答案。With curl与-d“page=1”配合正常,与-d“page='1'”配合不正确@ChrisChenI会认为这是表单不承认1.0与1相同的问题。在里面您不能有一个没有小数部分的数字。@RodrigoLopezGuerra假设您不能控制接收此帖子的服务器端?那么“有效负载”呢:JSON.stringify(表单)?您是否错过了上面的评论?JavaScript中的所有数字都是浮点。没有
int