请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,electron新建一个窗口,传入本地的一个url链接

老师,electron新建一个窗口,传入本地的一个url链接,发送请求时显示跨越问题,没有返回,但是在主窗口相同接口是正常的,如果两个窗口都要发送网络请求,并且数据共享,应该怎么处理?

正在回答 回答被采纳积分+3

2回答

张轩 2022-02-11 10:22:53

同学你好

简单看了你复制的代码,不太全,如果方便的话可以提供(git),方便本地调试,猜测一下流程

1 你在 renderer process(也就是一个窗口中)通过 ipcRenderer 发送了一个消息给 main,这里面有个 url

2 main 在接到这个消息后,通过发送过来的 url,创建一个新的窗口

3-1 在新的窗口中,发送接口异步请求显示跨域(出现问题)。

3-2 在 主进程main.js 发送接口异步请求数据返回成功。

假如我猜的对的话,因为在窗口中,在浏览器环境中,受浏览器的限制,跨域是不能发送成功的。而在 main.js,因为是在 node.js 环境中,所以没有限制.

建议在主进程中发送请求,然后通过事件的形式,直接吧返回的数据发送给子窗口。


0 回复 有任何疑惑可以回复我~
  • 提问者 qq_乐臣氏_03984465 #1
    electron每次打开一个新窗口是新开了一个进程吗?那个url也是项目路径拼成的本地url,在主窗口是可以正常请求的吗,公司的项目没有git,只是好奇为什么,我开始想的也是两边传值扔数据来解决
    回复 有任何疑惑可以回复我~ 2022-02-11 17:34:10
  • 提问者 qq_乐臣氏_03984465 #2
    老师,超爱你的课程,啥时候有空也出一套react native的课程呗!
    回复 有任何疑惑可以回复我~ 2022-02-11 17:38:11
  • 提问者 qq_乐臣氏_03984465 #3
    可以用react native 仿这个electron搞个云备忘录吗?
    回复 有任何疑惑可以回复我~ 2022-02-11 17:44:14
张轩 2022-02-10 10:08:21

同学你好 

能提供简单的代码示例吗?这样可以更快定位你的问题。我没有弄清楚你的请求是在浏览器端发送的,还是在 main.js 启动窗口的脚本中发送的

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_乐臣氏_03984465 #1
    url = "/singlecontact"
                
                ipcRenderer.send('show-singlechat-window', {
                    url: url,
                });
    回复 有任何疑惑可以回复我~ 2022-02-10 10:24:46
  • 提问者 qq_乐臣氏_03984465 #2
    ipcMain.on('show-singlechat-window', async (event, args) => {
           
            if (!workspaceWindow) {
                workspaceWindow = createWindow(args.url,800, 600, 800, 600, true, true);
    回复 有任何疑惑可以回复我~ 2022-02-10 10:25:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信