Публикация данных массива в Ajax в JavaScript и чтение параметра на стороне сервера - PullRequest
1 голос
/ 22 сентября 2019

Я отправляю данные массива в формате 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 сценария Google App:

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) на стороне сервера, ноэто не работает

1 Ответ

2 голосов
/ 22 сентября 2019

Примечания: метод * POST

  • jquery, по умолчанию отправляет содержимое как 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 как

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

Список литературы:

...