将PHP文件内容导入Javascript变量

时间:2016-01-23 21:02:46

标签: javascript php xmlhttprequest

我试图从名为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。

1 个答案:

答案 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)
});