跨域 Ajax 调用 Atom Shell
Cross Domain Ajax Call in Atom Shell
我们正在与 Atom Shell(目前称为 electron)合作,将 Web 应用程序包装为桌面应用程序,并且由于 CORS 限制而无法进行跨域 ajax 调用。
我们还尝试了 nw.js(以前称为 Node-Webkit),使用它进行跨域 ajax 调用没有问题。 Atom Shell (Electron) 是否默认限制跨域调用?
如果网页以 "file://" 模式加载且未由 http 服务器提供服务,默认情况下您可以进行 ajax 调用。
如果您仍然无法解决 CORS 限制问题,可以将此选项设置为浏览器-window 对象:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: { webSecurity: false }
});
这里有两个问题
CORS限制,防止客户端发起请求,Access-Control-Allow-Origin header服务器设置
通过在 Browser-window object 上设置 web-security 选项解决了第一个问题。
"webPreferences" : {
"webSecurity" : false
},
据我所知,Electron 实际上发送 'file://' 作为请求中 Origin 的值的第二个问题没有解决方案。
您的选择是在 Access-Control-Allow-Origin header(服务器端)中允许 'file://' 或 '*'。
我实际上已经请求允许在请求中设置原点,但我怀疑它不会有太大的吸引力。
解决方案的更新语法:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: {webSecurity: false}
});
我们正在与 Atom Shell(目前称为 electron)合作,将 Web 应用程序包装为桌面应用程序,并且由于 CORS 限制而无法进行跨域 ajax 调用。
我们还尝试了 nw.js(以前称为 Node-Webkit),使用它进行跨域 ajax 调用没有问题。 Atom Shell (Electron) 是否默认限制跨域调用?
如果网页以 "file://" 模式加载且未由 http 服务器提供服务,默认情况下您可以进行 ajax 调用。
如果您仍然无法解决 CORS 限制问题,可以将此选项设置为浏览器-window 对象:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: { webSecurity: false }
});
这里有两个问题
CORS限制,防止客户端发起请求,Access-Control-Allow-Origin header服务器设置
通过在 Browser-window object 上设置 web-security 选项解决了第一个问题。
"webPreferences" : {
"webSecurity" : false
},
据我所知,Electron 实际上发送 'file://' 作为请求中 Origin 的值的第二个问题没有解决方案。 您的选择是在 Access-Control-Allow-Origin header(服务器端)中允许 'file://' 或 '*'。
我实际上已经请求允许在请求中设置原点,但我怀疑它不会有太大的吸引力。
解决方案的更新语法:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: {webSecurity: false}
});