POST работает с предупреждением, но не без него - PullRequest
0 голосов
/ 13 декабря 2018

Я отправляю запрос на публикацию в скрипт приложения Google с кодом ниже

    var url ="MY WEBAPP EXEC"

     function submitForm() {
        var postRequest = {}
        postRequest.name = $("#inputName").val();
        postRequest.email = $("#inputEmail1").val();
        postRequest.message = $("#inputMessage").val();

        alert(JSON.stringify(postRequest));  // this alert

        $.post(url, postRequest, function(data,status){
           alert('success')
        });
    }

Я очень смущен, почему сообщение работает с предупреждением, но не работает без него.Спасибо.

=== ОК. Я думаю, мой вопрос не был достаточно ясным, извините.

У меня есть форма для удаленного доступа к ГАЗУ.Я предположил, что URL подразумевает, что я получаю удаленный доступ к ГАЗУ.В данный момент я работаю на своем локальном хосте и на моем JS выше, он работает, если присутствует оператор оповещения, и ничего не делает, если оповещения нет.

Я наблюдал за списком выполнения в GSuite Developer Hub, чтобыпосмотреть, если запрос не выполнен или выполнен.Я заметил, что если в сценарии присутствует оператор оповещения, статус выполнения завершен, но если в нем нет оператора оповещения, то ничего не происходит.Я предполагаю, что мой пост-скрипт не работает, если оповещения нет.Есть идеи почему?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы не показали, как именно вызывается эта функция, но, скорее всего, это произойдет, потому что, если это действительно действие «отправки формы», результатом отправки формы является «загрузка новой страницы» (которая можетбыть той же самой страницей, на которой вы находитесь, и по умолчанию она не имеет атрибута action в теге формы

Поскольку вы хотите выполнить AJAX при отправке формы, вам необходимо «запретить» «по умолчанию»действие отправки формы - это может быть достигнуто, как показано во второй и третьей строках ниже

 var url ="MY WEBAPP EXEC"
 function submitForm(e) { // if this function is called using an event handler, it gets an event as the first and only argument
    e.preventDefault(); // prevent the "default" form submit action
    var postRequest = {}
    postRequest.name = $("#inputName").val();
    postRequest.email = $("#inputEmail1").val();
    postRequest.message = $("#inputMessage").val();

    alert(JSON.stringify(postRequest));  // this alert

    $.post(url, postRequest, function(data,status){
       alert('success')
    });
}
...