在我的 React 应用程序中,单击按钮会打开一个新窗口。这个窗口被存储在一个变量中,我为onkeydown
和onbeforeunload
事件附加了函数。
我观察到只有当窗口的 url 为空时才调用这些函数。
window.open('', '', '')
对于非空 url,这些事件不会被触发。
window.open('https://wwww.stackoverflow.com', '', '')
这是一个演示此的代码框:
这与网址本身有什么关系吗?请说明我是否在这里遗漏了什么...
实际用例:
在我的前端应用程序(在端口 3000 上运行)中,我试图打开一个新窗口来打开后端 URL(在端口 8000 上运行)。因此,单击http://localhost:3000中的按钮,将打开一个指向http://localhost:8000/api/something的新窗口。
因此,我将 nginx 添加为反向代理,并将 '/' 指向 3000,将 '/api' 指向 8000,并在端口 80 下访问这两者,如下所示:
http {
upstream backend {
server 127.0.0.1:8000;
}
upstream frontend {
server 127.0.0.1:3000;
}
server {
listen 80;
location /api {
proxy_pass http://backend;
}
location / {
proxy_pass http://frontend;
}
}
}
因此,现在我可以通过转到http://localhost并单击按钮来访问 ui 应用程序,新窗口将打开http://localhost/api/something。这不应该克服同源问题吗?