Как заставить fetch () formData () и POST для google sheet работать в мобильном браузере? - PullRequest
0 голосов
/ 06 июня 2019

Я собираю некоторые данные из формы и публикую их в Google Sheet onClick. После публикации данных пользователь перенаправляется на другую страницу.

Я написал код в ванильном Javascript - приложение в vue, но метод в чистом JS).

Все хорошо работает в настольных браузерах, но не в мобильных браузерах (Chrome & Safari на iOS), где данные не публикуются и пользователь не перенаправляется. Похоже, кнопка ничего не делает.

Это мой код:

 buttonAction () {
   this.checkedStar()
   this.$emit('close')
 }

проверка формы звезды:

    checkedStar () {
      let star = document.getElementsByTagName('input')
      for (var i = 0; i < star.length; i++) {
        if (star[i].type === 'radio' && star[i].checked) {
          this.starRating = document.getElementById(star[i].id).value
        }
      }
      // save data in state
      this.$store.dispatch('setStarRating', this.starRating)
      // calling the google sheet method
      this.saveToGoogleSheet()
    }

Публикация в Google Sheet:

    saveToGoogleSheet () {
      const scriptURL = 'https://script.google.com/macros/s/.../exec'
      const form = '' 
      var sendingData = new FormData(form)
      sendingData.append('starRating', this.feedbackData.starRating)
      fetch(scriptURL, {method: 'POST', body: sendingData})
    }

Опять же, это отлично работает на рабочем столе, проблема на мобильном телефоне.

проблема мобильного браузера, похоже, известна. однако я не нашел четкого ответа о том, в чем заключается проблема (Google Sheet API, FormData или выборка и т. д.) и есть ли обходной путь.

Я также попробовал на chrome вариант «запросить сайт рабочего стола», но он все равно не работает.

Как я могу заставить этот код работать в мобильном браузере?

...