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);
                }
            });
        }
    });
};

您确实不需要这样做,请检查您的路径并将其作为最后一个选项。

很晚了,但我找到了解决这个问题的方法,也许有一天这对某人有帮助