2017-05-26 132 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 –