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)提供了一种从不同域中的服务器请求数据的方法,由于相同的来源策略,典型的 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 回答