@@ -100,6 +100,19 @@ export function createMainWindow() {
100100 } ,
101101 } )
102102
103+ win . webContents . session . webRequest . onBeforeSendHeaders ( ( details , callback ) => {
104+ const { requestHeaders } = details
105+ upsertKeyValue ( requestHeaders , "Access-Control-Allow-Origin" , [ "*" ] )
106+ callback ( { requestHeaders } )
107+ } )
108+
109+ win . webContents . session . webRequest . onHeadersReceived ( ( details , callback ) => {
110+ const { responseHeaders = { } } = details
111+ upsertKeyValue ( responseHeaders , "Access-Control-Allow-Origin" , [ "*" ] )
112+ upsertKeyValue ( responseHeaders , "Access-Control-Allow-Headers" , [ "*" ] )
113+ callback ( { responseHeaders } )
114+ } )
115+
103116 state . manage ( win )
104117 loadWindow ( win , "index.html" )
105118 wireZoom ( win )
@@ -177,3 +190,17 @@ function wireZoom(win: BrowserWindow) {
177190 win . webContents . setZoomFactor ( 1 )
178191 } )
179192}
193+
194+ function upsertKeyValue ( obj : Record < string , any > , keyToChange : string , value : any ) {
195+ const keyToChangeLower = keyToChange . toLowerCase ( )
196+ for ( const key of Object . keys ( obj ) ) {
197+ if ( key . toLowerCase ( ) === keyToChangeLower ) {
198+ // Reassign old key
199+ obj [ key ] = value
200+ // Done
201+ return
202+ }
203+ }
204+ // Insert at end instead
205+ obj [ keyToChange ] = value
206+ }
0 commit comments