angular - 如何使用带有Angular 9的Electron's Node服务器发出http请求。net.request({})无法读取undefined属性

标签 angular electron

我正在尝试通过Angular Electron应用程序向外部服务器创建http GET请求。由于CORS政策,我不能使用Angular的HttpClientModule,而不得不求助于使用Electron的内置节点服务器(对吗?)。
因此,在此处https://www.electronjs.org/docs/api/net和此处https://www.electronjs.org/docs/api/client-request上查看Electron的文档之后,我应该能够使用net.request功能,但是我似乎无法使其正常工作。
这是我要执行的代码,但我正在获取Cannot read property request of undefined,这可能是由于net的初始化方式(或未初始化):

import { Injectable } from '@angular/core';
import { net } from 'electron'

@Injectable({
  providedIn: 'root'
})
export class AuthService {

  constructor(
  ) {
  }

  checkUserStatus(authUser) {
    const request = net.request({
      method: 'GET',
      protocol: 'https:',
      hostname: 'github.com',
      port: 443,
      path: '/'
    })
  }
}
我是Electron的新手。有什么我想念的东西或者我可以做些不同的事情吗?

最佳答案

我遇到了同样的问题,我通过将webSecurity中的index.js设置为false来解决了该问题

    const win = new BrowserWindow({
      ...
      webPreferences: { webSecurity: false }
    });
你可以读到它here
应该将其视为临时解决方法,最好的解决方案是在服务器端处理CORS问题。
就个人而言,当可以使用net时,我会避免使用Node的HttpClientModule
话虽如此,这是在应用程序的“Angular ”部分中导入 Electron 特定成分的方法
import * as electron from "electron";
..

@Injectable()
export class AuthService {
net = electron.remote.require("net");
..

关于angular - 如何使用带有Angular 9的Electron's Node服务器发出http请求。net.request({})无法读取undefined属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62577064/

相关文章:

electron - 有没有办法在 Electron 中将本地文件加载到 HTML 中?获取 ERR_UNKNOWN_URL_SCHEME

javascript - Electron 应用程序通知仅在开发版本(非构建)上显示

javascript - Electron : Create a window above all the others (even fullscreen) and hide taskbar

angular - 通用类型 'Array<T>' 需要 1 个类型参数。 - Angular 2

angular - Karma-Jasmine:TypeError:无法读取未定义的属性(读取 'get')

javascript - Angular 2.1.0 动态创建子组件

reactjs - Electron :使用上下文菜单粘贴字符串

Angular Material 7 Multi Select - 设置选定值

angular - 如何设置 angular2 Material 滑动切换按钮的样式

reactjs - react-scroll在Electron应用程序中不起作用