我试图从名为IMVU的聊天客户端中检索用户的在线状态(通过个人资料图片的常规小图像持有人不够,我做了更大的事情,所以我需要一些信号),这样做的方法是使用用户ID 1111111的这一行,例如: http://avatars.imvu.com/catalog/web_status_updater.php?ol=1&list=1111111
它返回一个包含一行JSON的php文件。我需要将整行文本放入javascript变量中,以便我可以使用它。 我需要在我制作的剧本中使用它,但我似乎无法让它发挥作用。我尝试了很多东西,最接近的似乎就是这个:
function readTextFile(file)
{
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
var allText = rawFile.responseText;
alert(allText);
}
}
}
rawFile.send(null);
}
readTextFile("http://avatars.imvu.com/catalog/web_status_updater.php?ol=1&list=1111111");
(当我让这个实验首先工作时,我将alert(allText);
更改为return allText;
或return rawFile.responseText;
,并确保文本实际存储和显示。)< / p>
警报显示空白。只是一个白色的盒子,这就是全部。我以前的尝试让盒子显示出来并且说'#34; undefined&#34;,但现在它做了一些我猜的事情?为什么它是空白的?我该如何解决?
编辑: 它可以在IE浏览器中运行,但显然不适用于Firefox。
答案 0 :(得分:3)
我认为这里的问题是Same Origin Policy。您正在尝试向与发起请求的域不同的域发出请求。
某些网站指定允许此标题的标题,但此处返回的标题缺少Access-Control-Allow-Origin
标题。
解决此问题的一种方法是在支持它的服务器上使用JSON-P。
试试这个:
jQuery.ajax({
url:"http://avatars.imvu.com/catalog/web_status_updater.php?ol=1&list=1111111",
dataType:"jsonp"
})
.done(function(data) {
console.log(data)
});