0

JavaScript を使用して URL からデータを取得し、それを div に入れています。

function ahah(url, target) {
    document.getElementById(target).innerHTML = 'Fetching fixtures...';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target);};
    req.open("GET", url, true);
    req.send("");
    }
}  

function ahahDone(url, target) {
    if (req.readyState == 4) { // only if req is "loaded"
        if (req.status == 200) { // only if "OK"
            document.getElementById(target).innerHTML = req.responseText;
        } else {
            document.getElementById(target).innerHTML=" Error:\n"+ req.status + "\n" +req.statusText;
        }
    }
}

function load(name, div) {
    ahah(name,div);
return false;
}

load('http://www.domain.com/feeds/','content');

問題は、ロードする URL がローカル (/feeds/) の場合は正常に機能することですが、保持する予定の外部サイト (http://www.domain.com/feeds/) を指すように変更すると、ファイルに「エラー0」が表示されます。

URL に利用可能なコンテンツがあることを確認しましたが、ローカルでない限り機能しません。どんなフィードバックでも大歓迎です、ありがとう。

4

2 に答える 2

1

フェッチしようとしている HTML ページは、Web サイト (ドメイン) に存在する必要があることがわかりました。他のサイトから取得しようとする html フラグメントは取得されません。

于 2012-03-05T10:10:48.297 に答える
1

0 の「エラー」は、要求がローカル マシンにロードされたことを意味します。心配することは何もありません:)

次のコード行を変更して、ステータス 0 を受け入れるようにします。

if (req.status == 200 || req.status == 0) {

編集:一部のコメンターが言及しているように、ドメインオリジンの問題も発生する可能性がありますが、この場合の問題ではないと思います.

于 2012-02-02T14:27:45.817 に答える