2014-03-14 19 views
0

我從docs看不到它應該如何工作。用Firebug調試也沒有幫助。也許我需要坐幾個小時才能更好地理解它。使用easyXDM(或任何其他客戶端框架)進行HTTP服務可用性測試(或通常的響應解析)可能嗎?

基本問題是,我想檢查各種地理服務的可用性(WFSWMS。由於XSS瀏覽器限制XmlHttpRequest無法正常工作。

我想Socket接口是適合使用的,因爲我無法實現一些CORS的情況,因爲我對外部服務沒有影響。

使用下面的代碼工作正常,返回一些請求數據(下載的XML響應的Firefox彈出):

var socket = new easyXDM.Socket({ 
    remote: "http://path.to/provider/", // the path to the provider 
    onReady:function(success) { 
     alert(success); // will not be called 
    } 
    onMessage:function(message, origin) { 
     alert(message, origin); // will not be called 
    } 
}); 

但是我沒有找到一種方法(與onReadyonMessage回調嘗試)以某種方式得到一些HTTP status對象,我可以處理,以確定哪種迴應,例如200404,我得到了。

也許這是完全錯誤的方法來解決這個問題?

+0

試圖瞭解,你想檢查HTTP服務是否可用編程方式? – LakshmiNarayanan

+0

通過我喜歡建立一個沒有服務器後端的網站 –

回答

0

可悲的是連我的獎金並沒有幫助得到答案,所以我剛剛看了一下週圍聚集在這個問題上的一些更多的相關信息自己... 首先...

XSS的一般問題

看着XSS和一些相關的問題/鏈接討論更多的問題比解決方案(這是好的)。

看着關於JavaScript的同源策略它變得清晰,我們的全球口號安全過自由 在這一領域也應用了相關Firefox的文檔。 (我個人不喜歡解決問題的這種方式和本來希望看到另一種方式爲在這個答案的末尾描述來解決這些問題。)

:很好地歸結by Benjamin Franklins (founder of the US) statement他誰爲了安全而犧牲自由是不值得的。

的CORS溶液(=>外部服務器的依賴關係)

僅支持標準/穩健的方式似乎是使用CORS跨源資源共享)功能。 基本上這意味着外部服務器具有至少遞送一些CORS兼容信息(HTTP頭Access-Control-Allow-Origin: *)以允許其他人(=客戶端瀏覽器)來請求數據/內容/ ....哪也意味着,如果一個不具有控制權的外部服務器將不會有一般的強勁的客戶端/瀏覽器的方式做到這一點在所有:-(。

服務器/客戶端應用程序

強大的解決方案(如沒有外部服務器控制)

因此,如果我們的外部服務器不支持CORS,或者它沒有配置爲可由我們的請求者使用來源(協議/域/端口組合),似乎最好在我們自己的應用服務器端進行這種訪問我們沒有這些限制,當然還有其他的影響。

客戶端解決方案,我會希望看到

一些介紹先來了解客戶端的世界裏,我遇到瀏覽網頁作爲標準用戶...

我個人不喜歡在瀏覽網頁時被跟蹤,也不喜歡被惡劣的硬件或網絡資源拖慢,也不想在瀏覽網頁時暴露於簡單的避免數據安全問題。這就是爲什麼我使用Firefox的各種有用的插件,像RequestPolicyAdblock Plus的Ghostery的餅乾怪獸是Flashblock ...。這已經顯示出一種複雜性,沒有普通用戶通常可以/將會處理。但特別是在RequestPolicy它顯示瞭如何在客戶端處理對外部資源的訪問。

因此,如果例如火狐(沒有這些插件)將支持一些功能向用戶展示類似於RequestPolicy一個對話框,可能會說出類似下面,我們就可以鬆開一個起源策略

[x] 'http://srcdomain.com' (this site) 
    [ ] all sites (select to block/allow for all sites) 

would like to request some data from 

    [x] 'http://dstdomain.com' 
    [x] 'http://dst2domain.com' 

in a generally considered UNSECURE way. 

You can selected one of the following options about how to proceed with 
access to the selected sites from the selected sites: 

    [x] block always (generally recommended) 
    [ ] block only for this session 
    [ ] allow always (but not to subreferences) [non-recursively] 
    [ ] allow only for this session (but not to subreferences) [non-recursively] 
    [ ] allow always (and all subreferences) [recursively] 
    [ ] allow only for this session (and all subreferences) [recursively] 

當然這一點應該儘可能地向普通用戶明確說明,我在這裏肯定不會這樣做,並且可以在像其他現有技術(Cookie處理,JavaScript處理,...)這樣的設置中通過默認方式處理。

這樣我可以解決我沒有太多麻煩的問題,因爲我可以很好地處理在我的情況下所需的用戶設置的數量。

回答關於easyXdm

我猜,因爲他們建議CORS以及和依賴於瀏覽器,這是唯一可靠的方法,儘管一些解決方法可能會取決於像Flash等瀏覽器/版本/插件依然存在可能存在。

相關問題