-1

そこで、別の Web サイトから 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);
    }
}
}
4

2 に答える 2

2

ブラウザではjavascriptがサンドボックス化されているため、javascriptを使用して別のWebページからプルすることはできません。サンドボックス化とは、JavaScriptが最初に送信されたのと同じドメイン(「同じ元のポリシー」とも呼ばれます)にのみリクエストを送信できることを意味します。

phpなどのサーバーサイド言語を使用してプルを実行し、ajaxを介してjavascriptに渡すことができます。

あなたが投稿したコードは、単純なajax呼び出しを行うように見えますが、自分のサイト以外からRSSを要求しようとすると機能しないはずです。

于 2012-07-04T20:02:14.580 に答える
1

アプリケーションのサーバー側で xml のデータをフェッチし、必要に応じてデータをフォーマットすることをお勧めします。

Ajax リクエストがサーバーのエンドポイントに到達すると、サーバーは xml データを取得し、適切にフォーマットして、正しいフォーマットのデータでリクエストに応答します。

于 2012-07-04T20:11:24.637 に答える