Zac*_* C. 8 vue.js electron axios babel-polyfill
我正在使用带有 Axios的Electron Vue应用程序来调用我的 Laravel 服务器。在 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.')
})
Run Code Online (Sandbox Code Playgroud)
我做了一些谷歌搜索,看到了一些关于 CORS 的帖子。所以我在我的 Web 服务器和 Laravel 上完成并启用了它。这造成了更大的混乱。同样的错误,但这次没有数据应用于任何东西。所以 .then() 甚至没有被调用。最重要的是,在启用 CORS 的情况下,我的 Axios 似乎正在使用 OPTIONS 的请求方法进行额外的 HTTP 调用。为什么?我不认为 CORS 是我问题的答案。
同样在我的 Electron Vue background.js 中,我重新开启了网络安全。这是因为发展。这没有改变任何东西。
win = new BrowserWindow({
width: 275,
height: 640,
title: 'title',
// webPreferences: { webSecurity: false }
})
Run Code Online (Sandbox Code Playgroud)
有谁知道发生了什么?
编辑 - 1-14-2019
在发现错误“未定义 regeneratorRuntime”后,我认为这是一个 Babel 问题。我已经按照https://babeljs.io/docs/en/babel-polyfill/进行了所有操作,但仍然得到“未定义 regeneratorRuntime”。Babel + Axios + Electron + Await/Sync 一起工作没有任何错误吗?我个人不希望忽略“未定义 regeneratorRuntime”,并尽可能为这个问题找到一个可靠的解决方案。任何输入或我研究的东西将不胜感激!
经过多次谷歌搜索后,我发现我只是缺少 package.json 中的依赖项。尽管它们在 node_modules 文件夹中是必需的,但它们并未在我的程序中列为依赖项。
正在开发 Electron + Vue + Axios + Sync/Await 的生产版本
npm install --save @babel/runtime
npm install --save-dev @babel/plugin-transform-runtime
Run Code Online (Sandbox Code Playgroud)
并且,在 .babelrc 中添加:
{
"presets": ["@babel/preset-env"],
"plugins": [
["@babel/transform-runtime"]
]
}
Run Code Online (Sandbox Code Playgroud)
从这里的答案中得到了这个代码
| 归档时间: |
|
| 查看次数: |
5155 次 |
| 最近记录: |