我在sharepoint上有一个跟踪任务的列表。
我正在尝试创建一个电子应用程序,将ping (http get request)这个列表每分钟左右,并显示一个小窗口与当前用户已分配的所有任务,并突出显示新的任务。
我使用fetch API访问该列表,如下所示:
const _COLLAB_ROOT = "http://company.com/projects/team-site/_vti_bin/listdata.svc/"
export function read(list, callback) {
const myHeaders = new Headers({
"Accept": "application/json",
'Authorization': 'Basic '+btoa('username:password'),
'Access-Control-Allow-Origin': '*'
});
const myInit = {
method: 'GET',
headers: myHeaders,
mode: 'no-cors'
}
fetch(_COLLAB_ROOT+list,myInit)
.then(response => {
if (response.ok) {
response.json().then(data => {
callback(data.d);
});
}
return Promise.reject(Error('error'))
}).catch(error => {
return Promise.reject(Error(error.message))
})
}其他模块:
read('listname',data => {
console.log(data);
})但是,当我发送此请求并填写列表名称时,我得到了以下内容:


现在我假设这与CORS有关。我想知道的是,有没有办法让它正常工作?
这似乎是电子学需要的非常明显的东西。
此外,我还将we-preferences属性设置为
mainWindow = new BrowserWindow({
width: 800,
height: 600,
frame: true,
'web-preferences': {'web-security': false}
});在这里,我们非常感谢您的帮助。如果这是不可能的,我真的会很惊讶,所以希望我是个哑巴!
编辑:从chrome上的Restlet客户端查询时的响应

发布于 2017-05-27 01:18:03
你使用的是旧的webPreferences语法,你的构造函数应该看起来像这样:)
mainWindow = new BrowserWindow({
width: 800,
height: 600,
frame: true,
webPreferences: {
webSecurity: false
}
});发布于 2020-07-29 20:05:44
仅适用于开发
mainWindow = new BrowserWindow({width: 900, height: 680,webPreferences: {
nodeIntegration: true,
webSecurity: false
}});发布于 2020-10-30 20:39:53
现在似乎不可能了,因为webSecurity不再控制CORS了。(用于v9+的)
webSecurity选项控制blink内部的web安全,但最近CORS的控制已移出blink,因此该选项不再控制CORS。
请参阅https://github.com/electron/electron/issues/23664#issuecomment-692422997
https://stackoverflow.com/questions/44205831
复制相似问题