> Faqs > Solucionar Refused to connect... Security Policy... con Axios en Electron

Solucionar Refused to connect... Security Policy... con Axios en Electron

Estoy desarrollando una aplicación con Electron.

Además de Electron, tengo Electron Forge como scaffolding, con Webpack y uso Axios para hacer las solicitudes HTTP.

El problema que me surge al contectarme con el API es debido a un error "Refused to connect...". El error completo que aparece es el siguiente:

Refused to connect to 'https://example.com:3005/api/manuales' because it violates the following Content Security Policy directive: "default-src 'self' 'unsafe-inline' data:". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.

He encontrado varias propuestas en Internet como colocar una etiqueta META:

<meta http-equiv="Content-Security-Policy" content="default-src 'self'">

O cambiar la configuración de Axios, pero no he podido solicionarlo. ¿Alguna idea?

Respuestas

Después de mucho buscar he dado con la solución a este problema... hay que modificar la configuración de Webpack implementada con Electron Forge para que puedas hacer las conexiones por HTTP.

Se trata de una configuración especial que parece que se introduce en modo desarrollo y que tiene que modificarse en el archivo de configuración forge.config.js para el plugin @electron-forge/plugin-webpack.

La configuración que hay que introducir es esta:

devContentSecurityPolicy: "connect-src 'self' https://example.com:3005 'unsafe-eval'",

Fíjate por supuesto de cambiar la URL del servidor de tu API, y además el puerto.

Esta es la configuración completa del plugin-webpack que tengo en el array de plugins del forge.config.js:

{
  name: '@electron-forge/plugin-webpack',
  config: {
    mainConfig: './webpack.main.config.js',
    devContentSecurityPolicy: "connect-src 'self' https://example.com:3005 'unsafe-eval'",
    renderer: {
      config: './webpack.renderer.config.js',
      entryPoints: [
        {
          html: './src/index.html',
          js: './src/renderer.js',
          name: 'main_window',
          preload: {
            js: './src/preload.js',
          },
        },
      ],
    },
    "loggerPort": "9001"
  },
},
María
189 4 17 11