Electron:如何在没有 CSRF 保护的情况下在 Electron 中执行 AngularJS?
Electron: how to execute AngularJS in Electron without CSRF protection?
最近我开始开发我的第一个电子应用程序并遇到了一个问题,希望有人能帮助我。
我想使用 Electron 通过管理后端 AngluarJS HTML 主题快速创建一个外观很酷的应用程序。
AngluarJS 主题在 http:// 源中运行良好,但当我从 C:\ 驱动器等本地驱动器加载主题时,它破坏了主题,因为(我认为)chrome.
现在我用谷歌搜索了我的屁股,但找不到好的解决方案。我认为 运行 电子中的 http-server 可能是一个解决方案,所以我尝试了 npm http-server 包。这种方法的问题是在这种情况下 nodejs 代码不再工作,因为 http 服务器将只处理静态文件。
是否还有其他解决方案?
谢谢你和我一起思考!
Electron 没有问题 运行 AngularJs 应用程序。
我使用 Angular 构建了一些 Electron 应用程序,没有 CSRF 问题。
解决这个问题的一种方法是在电子内部创建一个简单的服务器运行,如下所示:
// <YOUR-ENTRY-FILE>.js
app.on('ready', function() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
var server = http.createServer(requestHandler).listen(9527);
mainWindow.loadUrl('http://localhost:9527/index.html');
mainWindow.webContents.on('did-finish-load', function() {
mainWindow.setTitle(app.getName());
});
mainWindow.on('closed', function() {
mainWindow = null;
server.close();
});
});
function requestHandler(req, res) {
var
file = req.url == '/' ? '/index.html' : req.url,
root = __dirname + '/www',
page404 = root + '/404.html';
getFile((root + file), res, page404);
};
function getFile(filePath, res, page404) {
fs.exists(filePath, function(exists) {
if(exists) {
fs.readFile(filePath, function(err, contents) {
if(!err) {
res.end(contents);
} else {
console.dir(err);
}
});
} else {
fs.readFile(page404, function(err, contents) {
if(!err) {
res.writeHead(404, {'Content-Type': 'text/html'});
res.end(contents);
} else {
console.dir(err);
}
});
}
});
};
您确实不需要这样做,请检查您的路径并将其作为最后一个选项。
很晚了,但我找到了解决这个问题的方法,也许有一天这对某人有帮助
最近我开始开发我的第一个电子应用程序并遇到了一个问题,希望有人能帮助我。
我想使用 Electron 通过管理后端 AngluarJS HTML 主题快速创建一个外观很酷的应用程序。
AngluarJS 主题在 http:// 源中运行良好,但当我从 C:\ 驱动器等本地驱动器加载主题时,它破坏了主题,因为(我认为)chrome.
现在我用谷歌搜索了我的屁股,但找不到好的解决方案。我认为 运行 电子中的 http-server 可能是一个解决方案,所以我尝试了 npm http-server 包。这种方法的问题是在这种情况下 nodejs 代码不再工作,因为 http 服务器将只处理静态文件。
是否还有其他解决方案?
谢谢你和我一起思考!
Electron 没有问题 运行 AngularJs 应用程序。 我使用 Angular 构建了一些 Electron 应用程序,没有 CSRF 问题。
解决这个问题的一种方法是在电子内部创建一个简单的服务器运行,如下所示:
// <YOUR-ENTRY-FILE>.js
app.on('ready', function() {
mainWindow = new BrowserWindow({
width: 800,
height: 600
});
var server = http.createServer(requestHandler).listen(9527);
mainWindow.loadUrl('http://localhost:9527/index.html');
mainWindow.webContents.on('did-finish-load', function() {
mainWindow.setTitle(app.getName());
});
mainWindow.on('closed', function() {
mainWindow = null;
server.close();
});
});
function requestHandler(req, res) {
var
file = req.url == '/' ? '/index.html' : req.url,
root = __dirname + '/www',
page404 = root + '/404.html';
getFile((root + file), res, page404);
};
function getFile(filePath, res, page404) {
fs.exists(filePath, function(exists) {
if(exists) {
fs.readFile(filePath, function(err, contents) {
if(!err) {
res.end(contents);
} else {
console.dir(err);
}
});
} else {
fs.readFile(page404, function(err, contents) {
if(!err) {
res.writeHead(404, {'Content-Type': 'text/html'});
res.end(contents);
} else {
console.dir(err);
}
});
}
});
};
您确实不需要这样做,请检查您的路径并将其作为最后一个选项。
很晚了,但我找到了解决这个问题的方法,也许有一天这对某人有帮助