2012-07-04 59 views
-1

所以我得到了這個代碼從其他網站拉動rss飼料(我問他們,他們給了我許可)我不知道我應該寫在TAG1和TAG2。基本上,這只是我的問題: 下面是HTML(它的ajaxed頁)阿賈克斯拉內容從另一個網頁

<!doctype html> 
<html lang="hu"> 
<head> 
    <title>Videók</title> 
    <meta charset="utf-8"/> 
     <script type="text/javascript" src="../js/videok.js"></script> 
</head> 
<body> 
    <h2><a href="#" style="font-size:15pt; color:#ff00e8; text-decoration: none;">Van egy jó videód? Töltsd fel és kikerülhet az oldalra!</a></h2> 
     <div id="videok"></div> 
</body>   
</html> 

這裏是JavaScript拉

window.onload = initAll; 
var xhr = false; 
var dataArray = new Array(); 
var url = "choose url"; 

function initAll() { 

if (window.XMLHttpRequest) { 
    xhr = new XMLHttpRequest(); 
} 
else { 
    if (window.ActiveXObject) { 
     try { 
      xhr = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch (e) { } 
    } 
} 

if (xhr) { 
    xhr.onreadystatechange = setDataArray; 
    xhr.open("GET", url, true); 
    xhr.send(null); 
} 
else { 
    alert("couldn't create XMLHttpRequest"); 
} 
} 

function setDataArray() { 
var tag1 = "subject1"; 
var tag2 = "subject2"; 

if (xhr.readyState == 4) { 
    if (xhr.status == 200) { 
     if (xhr.responseXML) { 

      var allData = xhr.responseXML.getElementsByTagName(tag1); 
      for (var i=0; i<allData.length; i++) { 
       dataArray[i] = allData[i].getElementsByTagName(tag2)[0].firstChild.nodeValue; 
      } 
     } 
    } 
    else { 
     alert("the request failed" + xhr.status); 
    } 
} 
} 

回答

2

你將不能夠使用JavaScript來拉從另一個網頁,因爲JavaScript是在瀏覽器中沙箱。沙箱意味着您只能將請求發送到JavaScript最初來自的同一個域(也稱爲「相同策略」策略)。

您可以使用像php這樣的服務器端語言來做拉動,然後通過ajax把它交給javascript。

您發佈的代碼看起來就像是一個簡單的ajax調用,但在嘗試從您自己的站點以外的任何其他位置請求RSS時,它應該不起作用。

1

最好是讓應用程序的服務器端爲xml獲取數據並將數據格式化爲您所需的數據格式。

您將有Ajax請求到達您的服務器的終點,然後您的服務器將獲取xml數據,正確格式化並使用正確的格式化數據響應請求。