Ajax 从另一个网页拉取内容

Ajax Pull Content From another webpage

本文关键字:网页 另一个 Ajax      更新时间:2023-09-26

所以我得到了这个代码,用于从另一个网站提取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);
    }
}
}

您将无法使用javascript从另一个网页中提取,因为javascript在浏览器中是沙盒化的。沙盒意味着您只能将请求发送到 javascript 最初来自的同一域(也称为"相同的 orgin 策略")。

您可以使用像php这样的服务器端语言进行拉取,然后通过ajax将其传递给javascript。

您发布的代码看起来只是进行一个简单的 ajax 调用,但在尝试从您自己的站点以外的任何内容请求 RSS 时,它应该不起作用。

最好

让应用程序的服务器端获取 xml 的数据并按照所需的方式设置数据的格式。

您将让 Ajax 请求到达服务器的端点,然后您的服务器将获取 xml 数据,正确格式化并使用正确的格式化数据响应请求。

相关文章: