Cors atomshell中的跨域Ajax调用
我们正在与Atom Shell(目前称为)合作,将web应用程序包装为桌面应用程序,由于CORS限制,在进行跨域ajax调用时遇到困难Cors atomshell中的跨域Ajax调用,cors,electron,Cors,Electron,我们正在与Atom Shell(目前称为)合作,将web应用程序包装为桌面应用程序,由于CORS限制,在进行跨域ajax调用时遇到困难 我们也尝试过(以前称为NodeWebKit),使用它进行跨域ajax调用没有问题。Atom Shell(Electron)默认情况下是否限制跨域调用?如果网页以“file://”模式加载,并且不由http服务器提供服务,则默认情况下可以进行ajax调用 如果CORS限制仍然存在问题,可以将此选项设置为浏览器窗口对象: var BrowserWindow = re
我们也尝试过(以前称为NodeWebKit),使用它进行跨域ajax调用没有问题。Atom Shell(Electron)默认情况下是否限制跨域调用?如果网页以“file://”模式加载,并且不由http服务器提供服务,则默认情况下可以进行ajax调用 如果CORS限制仍然存在问题,可以将此选项设置为浏览器窗口对象:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: { webSecurity: false }
});
这里有两个问题 CORS限制(阻止客户端启动请求)和由服务器设置的“访问控制允许源站”标头 如上所述,通过在浏览器窗口对象上设置web安全选项,解决了第一个问题
"webPreferences" : {
"webSecurity" : false
},
第二个问题是Electron实际发送“file://”,因为请求中的Origin值没有解决方案。
您的选项是在访问控制允许源站标头(服务器端)中允许“file://”或“*”
实际上,我已经要求允许在请求上设置原点,但我怀疑这不会得到太多的支持。Solutions的更新语法:
var BrowserWindow=require('browser-window');
var win=新浏览器窗口({
webPreferences:{webSecurity:false}
});
这将关闭所有网络安全,对吗?我想知道是否有办法将单个域添加为“受信任”源,而不是此全局通配符。请注意,此通配符的语法已更改,破折号已删除。现在应该是webPreferences
和webSecurity