0

現在のページの読み込み時に別のページ (url) に存在するデータを挿入する必要があります。以下は私が使用しているコードですが、うまくいきません。以下のコードに問題がありますか?どうすればこの問題をデバッグできますか?

function loadHTML(url, storage)
{
    var xhr = createXHR();
    xhr.onreadystatechange=function()
    { 
        if(xhr.readyState == 4)
        {
            //if(xhr.status == 200)
            {
                storage.innerHTML = getBody(xhr.responseText);
            }
        } 
    }; 

    xhr.open("GET", url , true);
    xhr.send(null); 

} 


function loadWholePage(url)
{
    /**
        storage is the div id where I want to inject html
    */
    var y = document.getElementById("storage");
    loadHTML(url, y);
}   


window.onload = function()
{
   loadWholePage('link_to_the_page') ;
};
4

2 に答える 2

1

クロス ドメイン スクリプティングの問題が発生しました。同一オリジン ポリシーを参照してください。

私の知る限り、JSONPはこの問題を解決するのに役立ちます。

JSONP ( JSON with Padding ) は、異なるドメインのサーバーからデータを要求する方法を提供します。これは、同じオリジン ポリシーのために一般的な Web ブラウザーでは禁止されています。

于 2013-02-14T05:09:51.063 に答える
0

関数 createXHR() および getBody() に問題がある可能性があります。これらの関数用に作成したコードを投稿してください。さらに、デバッグのために、getBody() を呼び出す前に console.log を置いて、responseText とは何かを確認できます。

if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
console.log(xhr.responseText);
storage.innerHTML = getBody(xhr.responseText);
}
} 
于 2013-02-14T05:15:41.663 に答える