无星的electron之旅(三)——跨域

2,119 阅读1分钟

背景

你只要打包就肯定遇到这个问题...

原本开发的时候可以通过webpack的proxy做转发,避免跨域的问题

但是打包上线会发现,这和普通的前端项目上线不一样,不会发布到对应的域名下

而是本地文件协议加载,app//.或者file://这种协议

因此在填写网络请求baseurl的时候,势必会遇到跨域问题

解决方式由两种

一.后台解决

这个就不多说了,让后台去加cors即可.

要是有Nginx上也可以在Nginx上搞,百度一下都有

二.端上解决

你能百度到的基本都是

  win = new BrowserWindow({
    webPreferences: {
      //添加这样一个配置项,允许跨域
      webSecurity: false,
    },
  });

包括在electron的官方文档也是这么写的

但是我实测,不生效

还需要在文件顶端加上

app.commandLine.appendSwitch('disable-web-security');

这样才能允许端上跨域访问

感谢用户126777253074这位大哥在评论区给的回复