Невозможно назвать параметр get pid в запросах на получение скриптов Google - PullRequest
1 голос
/ 16 апреля 2019

Я хочу передать параметр в мою таблицу Google с запросом на получение.Имя параметра get - «pid», что, похоже, приводит к сбою в Google Sheets.

Мой пример сценария просто возвращает параметры получения клиенту:

function doGet(e){
  try {
    return ContentService
          .createTextOutput(JSON.stringify({"result":"your parameters", "parameters": e.parameter}))
          .setMimeType(ContentService.MimeType.JSON);
  } catch(ee){
    return ContentService
          .createTextOutput(JSON.stringify({"result":"error", "error message": ee}))
          .setMimeType(ContentService.MimeType.JSON);
  }
}

Следующий запрос работает:

https://script.google.com/macros/s/<sheet-id-here>/exec?a=1

возвращает:

{"result": "ваши параметры", "parameters": {"a": "1"}}

Но простое изменение имени параметра get возвращает ошибку:

https://script.google.com/macros/s/<sheet-id-here>/exec?pid=1

возвращает:

К сожалению, произошла ошибка сервера.Пожалуйста, подождите немного и попробуйте снова.

Есть идеи, что здесь происходит и как это исправить?Это ошибка?Есть ли способ справиться с этим на стороне сервера (не могу изменить мой код клиента)?

1 Ответ

2 голосов
/ 17 апреля 2019

Кажется, Google изменил зарезервированные параметры. Как написано в документации ,

Предупреждение. Следующие имена параметров зарезервированы системой и не должны использоваться в параметрах URL или телах POST:

с
с.и.д.

Использование этих параметров может привести к ответу HTTP 405 с сообщением об ошибке «Извините, запрошенный файл не существует». Если возможно, обновите ваш скрипт, чтобы использовать другие имена параметров.

Кажется, что оба параметра c и sid являются действительными, а параметр pid зарезервирован и выдает

Извините, в данный момент не удается открыть файл.

Похоже, что вы ничего не можете сделать на стороне сервера.

...