Параметр doGet(e) не определенJquery

Программирование на jquery
Ответить
Anonymous
 Параметр doGet(e) не определен

Сообщение Anonymous »

Я пытаюсь обработать параметры запроса в методе doGet(e) скрипта Google Apps. Я определил следующую простую функцию doGet(), которая обрабатывает разные HTML-коды в зависимости от параметров (или отсутствия параметров).

Код: Выделить всё

function doGet(e) {
Logger.log('In doGet');
Logger.log('query params: ' + e);
var isNull = (e.queryString == null);
var len = e.parameters.length;
Logger.log('query string is null: ' + isNull);
Logger.log('number of params: ' + len);
if (e.queryString == null) { //doesn't work!
Logger.log('Serving loginUI');
return HtmlService
.createHtmlOutputFromFile('loginUI')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Please log in");
}
//if here, we know query string is NOT null
if (e.parameter.mode == "player") {
return HtmlService
.createHtmlOutputFromFile('playerUI')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Following Player");
}
if (e.parameter.mode == "hole") {
return HtmlService
.createHtmlOutputFromFile('playerUI')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Following Hole");
}
if (e.parameter.mode == "flex") {
return HtmlService
.createHtmlOutputFromFile('flexUI')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setTitle("Flex Interface");
}
}
Как вы можете видеть из моего кода ведения журнала, я изо всех сил пытаюсь выяснить, что такое параметр e в случае, когда doGet() изначально вызывается без запроса. параметры. Вывод журнала следующий:

Код: Выделить всё

> [17-10-24 18:14:48:557 PDT] Starting execution [17-10-24 18:14:48:565
> PDT] Logger.log([In doGet, []]) [0 seconds] [17-10-24 18:14:48:566
> PDT] Logger.log([query params: [object Object], []]) [0 seconds]
> [17-10-24 18:14:48:566 PDT] Logger.log([query string is null: false,
> []]) [0 seconds] [17-10-24 18:14:48:567 PDT] Logger.log([number of
> params: undefined, []]) [0 seconds] [17-10-24 18:14:48:568 PDT]
> Execution succeeded [0.003 seconds total runtime]
Как обработать случай, когда в e.parameters нет параметров запроса. Похоже, что в этом случае e имеет неопределенное значение. Есть идеи?

В качестве дополнительного вопроса моя идея состоит в том, чтобы создать строки запроса в javascript, связанные с html-файлами, которые обслуживаются doGet. Например, в файл «loginUI.html», упомянутый в приведенном выше коде, я хочу включить код jquery, который вызывает google.script.run.doGet() с различными параметрами, как показано ниже:

Код: Выделить всё

$("#playerUI").click(function () {
var queryString = "?mode=player";
google.script.run.doGet(queryString);
});

$("#holeUI").click(function () {
var queryString = "?mode=hole";
google.script.run.doGet(queryString);
});

$("#flexUI").click(function () {
var queryString = "?mode=flex";
google.script.run.doGet(queryString);
});

Я считаю, что это тоже не сработает. Посоветуйте пожалуйста.

Подробнее здесь: https://stackoverflow.com/questions/469 ... -undefined
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»