Cors atomshell中的跨域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

我们正在与Atom Shell(目前称为)合作,将web应用程序包装为桌面应用程序,由于CORS限制,在进行跨域ajax调用时遇到困难


我们也尝试过(以前称为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