javascript - 在 JavaScript 中在 Ajax 中发布数组数据并在服务器端读取参数
问题描述
我将 json 格式的数组数据发布到 Google 应用脚本服务器。我关心的是如何在服务器端读取数据
var url = myappscripturl;
var mydata = {
name : "sunil",
arraydata : [
{
phone:'7898',
landline : '2678-789'
},
{
phone:'87658',
landline : '0672348'
}
]
};
$.ajax({
url : url,
method:'POST',
data:mydata,
success: function(data){
console.log(data);
}
})
//谷歌应用脚本doPost方法:
function doPost(e){
try{
var result = {"result7":e.parameter};
var jsondata = JSON.stringify(result);
return ContentService.createTextOutput(jsondata).setMimeType(ContentService.MimeType.JSON);
}
catch(e){
var error = {"error":e};
var jsonerror = JSON.stringify(error);
return ContentService.createTextOutput(jsonerror).setMimeType(ContentService.MimeType.JSON);
}
}
在控制台中获得响应:
result7:
arraydata[0][landline]: "2678-789"
arraydata[0][phone]: "7898"
arraydata[1][landline]: "0672348"
arraydata[1][phone]: "87658"
name: "sunil"
我如何在服务器端读取电话号码? 试图在服务器端使用 JSON.parse(e.parameter) 但它不起作用
解决方案
笔记:
jquery
的 POST 方法,默认情况下将内容发布为application/x-www-form-urlencoded
而不是application/json
.POST
发送为:arraydata[0][phone]=7898& arraydata[0][landline]=2678-789& name=sunil& arraydata[1][landline]=0672348& arraydata[1][phone]=87658
请注意,它
arraydata
被转换为纯字符串键。您可以访问
phone
asconst phone = e.parameter["arraydata[1][phone]"];//87658 const phones = e.parameters["arraydata[1][phone]"];//[87658]
参考:
推荐阅读
- dart - 底部居中容器中的一些小部件
- linux - Shell Script中的-n、-z、-x、-L、-d等是什么意思?
- c - 为什么 free(arr) 只删除数组的前两个元素?
- python - Pandas - 如何将数据框中的日期范围拆分为额外的列
- python - 如何从函数结果创建新列
- c# - C#如何使用反射调用clientContext.Web.Lists.GetByTitle(documentLibrary)?
- c# - 通过 Microsoft Graph API 订阅消息,无需用户交互
- c# - 在 c# ( 和其他问题) 中随机用真假布尔值填充数组
- javascript - 使用 Python Falcon 发送临时 xlsx 文件以供下载
- google-kubernetes-engine - 控制器和入口垫片错误