2013-03-17 69 views
-1

我正在創建一個Firefox插件並使用JavaScript。我使用XMLHttpRequest從遠程網站獲取動態內容,並將其存儲到文件中以便稍後解析。但在響應文字我沒有收到任何動態內容。存儲信息後,我只是沒有動態內容的html頁面。通過javascript從網站獲取動態內容

代碼:

var res=""; 

var req = new XMLHttpRequest(); 

req.onload = function(){ 

res=this.responseText; 
} 

req.open("GET","www.ebay.com", true); 

req.send(); 

回答

1

由於same-origin policy不能完成,因此您只能請求原始域中的內容。

這裏有一些鏈接可能會對你有所幫助:
Getting CORS Working
Cross-domain Ajax with Cross-Origin Resource Sharing


編輯:
既然你想從被Ajax生成一個網站來獲得,所以這是不可能得到動態內容。在網站上出現的dynamic content是在瀏覽器加載了html頁面之後,因此可以觸發Javascript事件以獲得dynamic contentAjax。你可以得到html頁面,但是你沒有得到Javascript文件。因此,不能得到激流的內容。

對不起我的英語不好

+0

感謝您的評論。是否有其他方式可以獲得遠程動態內容?忽略我必須使用JavaScript。 – user2178385 2013-03-18 02:11:20

+0

@ user2178385如果您知道* python *,有很多方法可以從遠程服務器獲取內容。既然你正在創建一個Firefox插件,我不熟悉插件的開發,所以我不能給你很多幫助。 – towry 2013-03-18 05:01:44

+0

我有疑問。如果這是同源政策的問題,那麼爲什麼我得到的HTML內容。它應該顯示「訪問被拒絕」的權利?糾正我,如果我錯了。 – user2178385 2013-03-18 08:15:54

1

你只能取下自己的域名遠程內容。這是一個安全問題。您可以使用JSONP,但對於易趣我不知道是否有任何可用的json內容。有關更多信息,請參閱以下內容:http://www.devproconnections.com/article/aspnet2/ajax-cross-domain-142169

如果您使用的是帶有Chrome擴展程序或Firefox插件的Javascript,則必須在清單文件中設置權限才能訪問所需的網站。

+0

嗯,我正在開發的一個插件,監控整個幾個網站和網站爲準,提供最低的價格,該插件彈出瀏覽器的通知航班的機票。所以,如果我使用JSONP,並且如果該網站有json內容,那麼我的問題將得到解決? – user2178385 2013-03-18 07:53:57

+0

編輯我的回答 – 2013-03-18 10:58:09

+0

該代碼能夠收到一些內容,但不是價格。其他靜態的東西,我能夠接收但不是航班信息。它是Access-Control-Allow-Origin的問題嗎?有沒有辦法解決這個問題? – user2178385 2013-03-18 11:21:06