electron 跨域
第一类方法,修改主进程
//允许跨域请求1 mainWindow.webContents.session.webRequest.onBeforeSendHeaders( (details, callback) => { callback({ requestHeaders: { Origin: '*', ...details.requestHeaders } }); }, ) mainWindow.webContents.session.webRequest.onHeadersReceived((details, callback) => { callback({ responseHeaders: { 'Access-Control-Allow-Origin': ['*'], ...details.responseHeaders, }, }); })
//允许跨域2
//创建窗口
const mainWindow = new BrowserWindow({
frame: false,
webPreferences: {
nodeIntegration:true,
enableRemoteModule:true,
contextIsolation:false,
webSecurity: false //关闭安全检查, 允许跨域, 不推荐
}
})
//允许跨域3 渲染进程
async function req2 (url, param) {
const myPromise = new Promise((resolve, reject) => {
const {net} = window.require('@electron/remote')
const request = net.request(url)
request.on('response', (response) => {
// console.log(`**statusCode:${response.statusCode}`);
// console.log(`**header:${JSON.stringify(response.headers)}`);
response.on("data", (data)=>{
resolve(data.toString())
// console.log("接收到数据:", chunk.toString());
})
response.on('end', (a,b,c) => {
console.log("结束接收到数据:")
reject('error')
})
})
request.end()
})
return myPromise
}

浙公网安备 33010602011771号