2017-05-26 63 views
0

我在SharePoint我在哪里跟踪任务的列表。电子访问跨域资源

我想创建一个电子的应用程序,将平(HTTP GET请求)这个列表每分钟左右,并显示当前用户已分配的所有任务的小窗口,并突出显示新任务。

我现在用的是获取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); 
}) 

然而,当我把装满列表中的名称申请,我得到的如下: enter image description here enter image description here

现在我认为这与CORS有关。我想知道的是,有没有办法让这个工作?

好像东西在电子被要求非常明显。

而且我已经在我们-偏好属性设置为

mainWindow = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    frame: true, 
    'web-preferences': {'web-security': false} 
    }); 

任何帮助,在此表示赞赏。 如果这是不可能的,我会很惊讶,所以希望我是愚蠢的!

编辑:响应来自客户端的Restlet对铬查询enter image description here

回答

3

您使用的是旧webPreferences语法的时候,你的构造看起来应该是这样:)

mainWindow = new BrowserWindow({ 
    width: 800, 
    height: 600, 
    frame: true, 
    webPreferences: { 
     webSecurity: false 
    } 
}); 
+0

嘿,感谢您的建议 - 依旧虽然获得401未经授权。 –

+0

401未授权是不是你可以绕过客户端,webSecurity禁用之类的东西CORS保护和iframe沙盒规则。服务器端会生成401个响应,因此您可能会丢失服务器所需的某种身份验证令牌。 – MarshallOfSound

+0

嘿,谢谢 - 我在一个剩余的客户端为Chrome浏览器尝试了这个请求,虽然它工作得很好。将添加详细信息到OP –