我们正在与Atom Shell (目前称为electron)合作,将web应用程序包装为桌面应用程序,但由于CORS限制,无法进行跨域ajax调用。
我们还尝试了nw.js (以前称为Node-Webkit),使用它进行跨域ajax调用没有任何问题。Atom Shell (Electron)是否默认限制跨域调用?
发布于 2015-05-08 04:23:02
如果网页是在"file://“”模式下加载的,并且没有http服务器提供服务,则默认情况下可以进行ajax调用。
如果您在CORS限制方面仍有问题,可以将此选项设置为browser-window对象:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: { webSecurity: false }
});发布于 2015-07-16 21:34:28
这里有两个问题
CORS限制,阻止客户端发起请求,以及由服务器设置的Access-Control-Allow-Origin头部。
第一个问题如前所述,通过在Browser-window对象上设置web安全选项来解决。
"webPreferences" : {
"webSecurity" : false
},第二个问题是电子实际上在请求中发送了'file://‘’作为原始值,据我所知没有解决方案。您的选项是允许在访问控制允许源头(服务器端)中使用'file://‘’或'*‘。
我实际上已经要求允许在请求上设置原点,但我怀疑这不会得到太多关注。
发布于 2017-11-04 04:56:38
解决方案的更新语法:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: {webSecurity: false}
});https://stackoverflow.com/questions/30101537
复制相似问题