CORS запросы в электронном js - PullRequest
0 голосов
/ 12 сентября 2018

Я занимаюсь разработкой приложения реагирования (приложения чата) с использованием Electron JS (для настольных компьютеров). Я хочу отправлять запросы Http на определенные веб-сайты, получать метаданные URL (opengraph, schema.org, twitterCard и т. Д.). Это не может быть сделано без отключения webSecurity в ElectronJS.

а) это хорошая идея отключить webSecurity в электронном JS? так как пользователи могут отправлять другим почти все что угодно?

б) Мне удалось добиться этого с помощью пакета электронной сети. Я использовал его в реакции (процесс рендеринга), и он работает плавно, нет необходимости отключать webSecurity. однако, если указан неверный URL-адрес, он вызывает исключение в основном процессе (net :: ERR_NAME_NOT_RESOLVED), в результате чего появляется диалоговое окно с сообщением об ошибке. Есть ли способ перехватить это исключение в процессе рендеринга?

ниже показано, как я использовал электронную сетевую упаковку.

const {net} = window.require('electron').remote

function ScrapeMeta(url) {
var promise = new Promise((resolve, reject) => {
    const options = {
        url: url,
        timeout: 2000
    };
    const request = net.request(options)
    request.on('response', (response) => {
        var body = '';
        response.on('data', function (d) {
            body += d;
        });
        response.on('end', () => {
            if (response.statusCode == 200) {
                ParseMeta(body)
                    .then(meta => resolve(meta))
                    .catch(err => reject(err))
            } else {
                reject("request failed with " + response.statusCode);
            }
        })
    })
    request.end();
})
return promise;

}

Каков наилучший способ достичь этого. спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...