Вызывается Axios Catch, даже если ответ 200 (Успешно)

Я использую приложение Electron Vue с Axios для HTTP-звонков на мой сервер Laravel. Все было прекрасно в режиме Dev от Electron. Но как только я собрал приложение Electron и установил его на клиентский компьютер, весь хаос разразился. Я исправляю некоторые проблемы, но эта проблема убьет меня.

Проще говоря, даже если все Axios возвращаются успешно, они выдают ошибку, которую я вставил в.catch(). Я, честно говоря, очень запутался, как это вообще возможно. Например, когда моя программа загружается, она делает несколько звонков, чтобы получить необходимую информацию. Выдает ошибку и отображает предупреждение. Я полагаю, это был только мой сервер Laravel. Но данные были успешно получены и добавлены в приложение.

axios.post(`${this.$store.state.URL}/get_server_ticket_from_table?api=${this.$store.state.API}`, {
    id: this.ServerTicketMove.Server1.id,
    table: this.ServerTicketMove.currentTable
})
.then((response) => {
    console.log(response)

    if (typeof response.data.id != 'undefined') {
        this.ServerTicketMove.ticket = response.data

    }

})
.catch(() => {
    alert('Did not get Servers Table Information. Cant Connect to Main Server.')
}) 

Я немного погуглил и увидел несколько сообщений о CORS. Так что я прошел и включил это на своем веб-сервере и в Laravel. Это сделало больше беспорядка. Та же ошибка, но на этот раз данные не были применены ни к чему. Так что.then() даже не вызывается. Вдобавок к этому с включенным CORS мой Axios, кажется, делает дополнительный HTTP-вызов с методом запроса OPTIONS. Зачем? Я не думаю, что CORS является ответом на мою проблему.

Также внутри моего Electron Vue background.js я снова включил веб-безопасность. Который был выключен из-за развития. Который ничего не изменил.

win = new BrowserWindow({
    width: 275,
    height: 640,
    title: 'title',
    // webPreferences: { webSecurity: false }
})

Кто-нибудь знает, что происходит?

РЕДАКТИРОВАТЬ - 1-14-2019

После обнаружения ошибки "регенератор не определен" я думаю, что это проблема Вавилона. Я следил за всем https://babeljs.io/docs/en/babel-polyfill/ и я все еще получаю "регенератор Runtime не определен". Есть ли что-нибудь, что Babel + Axios + Electron + Await/Sync работает без ошибок? Лично я хотел бы не просто игнорировать "регенератор не определено время", а найти возможное решение этой проблемы, если это возможно. Любой вклад или вещи для меня будут оценены!

1 ответ

Решение

После долгих поисков я понял, что мне просто не хватает зависимостей в моем package.json. Несмотря на то, что они были необходимы в папке node_modules, они не были перечислены как зависимости в моей программе.

Работа над моей производственной сборкой Electron + Vue + Axios + Sync/Await

npm install --save @babel/runtime 
npm install --save-dev @babel/plugin-transform-runtime

И в.babelrc добавьте:

{
    "presets": ["@babel/preset-env"],
    "plugins": [
        ["@babel/transform-runtime"]
    ]
}

Получил этот код из этого ответа отсюда

Эта проблема возникает, когда в вашем ответе есть ошибка, например, когда ответ правильный, но в ответе then вы делаете что-то, что вызывает ошибку, axios затем перехватывает эту ошибку, даже если ответ от сервера был успешным

Другие вопросы по тегам