【发布时间】:2021-04-24 17:10:21
【问题描述】:
我的网站上有一个表单,可以将其数据提交给 Google 应用脚本,然后该脚本会执行一些操作并将状态返回给网页。出于某种原因,当它读取提交的数据时,它会将每个值转换为仅包含该值的数组。例如:
{
fname: "danny",
lanme: "tester"
}
正在转换为
{
fname[]: ["danny"],
lanme[]: ["tester"]
}
** 也不是[] 被附加到属性名称;
这是一个简单的例子:
HTML
<form>
<input type="text" name="fname"> <input type="text" name="lname">
<submit>
</form>
JavaScript
var payload = {
fname: $('[name="fname"]').val(),
lname: $('[name="lname"]').val()
}
$('form').submit(function() {
$.ajax({
url: 'https://script.google.com/macros/s/SCRIPT_ID/exec',
data: payload
method: 'GET"',
dataType: 'jsonp',
success: function(data) {
console.log(JSON.parse(data.body));
}
});
});
Google Apps 脚本
function doGet(e) {
var data = e.parameters;
return ContentService
.createTextOutput(JSON.stringify(data))
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
运行时,将以下内容写入控制台:
{fname: Array(1), lname: Array(1)}
并扩展它产生
fname: ["danny"]
lanme: ["tester"]
在 Google Apps 脚本中进行转换很容易,但如果知道为什么会这样,那就太好了。有什么想法吗?
【问题讨论】:
标签: json ajax google-apps-script