Почему POST-запрос не работает в iOS Safari? - PullRequest
0 голосов
/ 06 марта 2019

Этот код прекрасно работает во всех браузерах для настольных компьютеров, включая Safari, но не работает в iOS Safari.Я просто не мог войти на сайт.Вот пример кода:

async LOGIN_USER ({commit}, {username, password}) {
  this.dispatch('CLEAR_ERROR')
  this.dispatch('SET_LOADING', true)
  var bodyFormData = new FormData()
  bodyFormData.append('username', username)
  bodyFormData.append('password', password)
  await axios({
    method: 'post',
    url: MAINURL + '/auth/jwt/create/',
    config: {
      headers: {'Content-Type': 'multipart/form-data'}
    },
    data: bodyFormData
  })

Неделя интернет-исследований ничего не дала.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 07 марта 2019

Как отметил пользователь в комментариях, проблема связана с тем, что браузер не поддерживает функцию асинхронизации / ожидания.Это может произойти в версии для iOS ниже 10.3, как показано здесь .

Поскольку это ключевое слово, а не функция, его нельзя легко исправить с помощью сценария полизаполнения.Однако существуют и другие методы.

Один из инструментов, который вы можете использовать: Babel .Babel - это компилятор, который берет современный ES7 Javascript и превращает его в то, что старые браузеры также могут поддерживать.

В этих документах описывается, как настроить Babel для преобразования асинхронного / ожидающего в обратно совместимый код.

По крайней мере соответствующие шаги будут выглядеть следующим образом:

Установите пакеты Babel:

npm install --save-dev @babel/core @babel/cli @babel/preset-env
npm install --save @babel/polyfill

Установите плагин, чтобы превратить async / await в генераторы

npm install --save-dev @babel/plugin-transform-async-to-generator

Из командной строки запустите

babel --plugins @babel/plugin-transform-async-to-generator script.js

Где script.js - ваш Javascript-файл, содержащий HTTP-запрос.

Это просто общий обзор необходимых шагов.Точные шаги будут зависеть от того, как вы настроили свой проект.Тем не менее, в общем, шаги будут похожи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...