我們與殼牌的Atom(目前稱爲electron)個工作包的web應用程序,桌面應用程序,有麻煩跨域AJAX由於CORS限制呼叫。跨域AJAX調用中的Atom殼牌
我們也嘗試nw.js(原名爲節點的Webkit),我們與它沒有任何問題使得跨域Ajax調用。 Atom Shell(Electron)默認限制跨域調用嗎?
我們與殼牌的Atom(目前稱爲electron)個工作包的web應用程序,桌面應用程序,有麻煩跨域AJAX由於CORS限制呼叫。跨域AJAX調用中的Atom殼牌
我們也嘗試nw.js(原名爲節點的Webkit),我們與它沒有任何問題使得跨域Ajax調用。 Atom Shell(Electron)默認限制跨域調用嗎?
如果網頁中的「file://」加載模式,而不是通過一個HTTP服務器提供服務,你可以在默認情況下Ajax調用。
如果您仍然有麻煩與CORS限制,你可以將此選項設置爲瀏覽器窗口對象:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
'web-preferences': {'web-security': false}
});
有兩個問題在這裏
CORS的限制,這防止客戶端啓動一個請求,以及由服務器設置的Access-Control-Allow-Origin頭部。通過設置瀏覽器窗口對象的網絡安全選項提到
的第一個問題就解決了。
"web-preferences" : {
"web-security" : false
},
第二個問題,即電子實際發送「文件://」作爲要求源的值不會有解決的辦法,據我可以告訴。 你的選擇是,讓「文件://」或「*」的訪問控制允許來源包頭(服務器端)。
其實我已經要求設置的請求的來源被允許,但我懷疑這會不會得到太多的牽引力。
解決方案更新過的語法:
var BrowserWindow = require('browser-window');
var win = new BrowserWindow({
webPreferences: {webSecurity: false}
});
這將關閉所有網絡的安全性,是否正確?我想知道是否有一種方法可以將單個域添加爲「可信」來源,而不是此全局通配符。 – masi
請注意,語法已更改爲此,破折號已被刪除。它現在應該是'webPreferences'和'webSecurity' – Jerry