我需要在当前页面加载时注入另一个页面(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') ;
};
答案 0 :(得分:1)
您遇到了跨域脚本问题。请参阅Same Origin Policy。
据我所知,JSONP可以帮助您解决这个问题。
JSONP(JSON with Padding)提供了一种从不同域中的服务器请求数据的方法,这是典型Web浏览器因相同的原始策略而禁止的。
答案 1 :(得分:0)
您的函数createXHR()和getBody()可能存在一些问题。发布您为这些功能编写的代码。此外,为了调试,你可以在调用getBody()之前放入console.log并检查什么是responseText。
if(xhr.readyState == 4)
{
if(xhr.status == 200)
{
console.log(xhr.responseText);
storage.innerHTML = getBody(xhr.responseText);
}
}