首页 > 解决方案 > 在 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) 但它不起作用

标签: javascriptjqueryajaxgoogle-apps-scriptweb-applications

解决方案


笔记:

  • 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被转换为纯字符串键。

  • 您可以访问phoneas

    const phone = e.parameter["arraydata[1][phone]"];//87658
    const phones = e.parameters["arraydata[1][phone]"];//[87658]
    

参考:


推荐阅读