将 PHP 文件内容导入 Javascript 变量

Import PHP file content to Javascript variable

我正在尝试从名为 IMVU 的聊天客户端检索用户的在线状态(个人资料图片旁边的常规小图片持有者不够用,我正在制作更大的东西,所以我需要一些信号),方法是使用用户 ID 1111111 的这一行,例如: http://avatars.imvu.com/catalog/web_status_updater.php?ol=1&list=1111111

它 returns 一个包含一行 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;。)

发生的情况是警报显示为空白。只是一个白盒子,仅此而已。我之前的尝试显示了该框,上面写着 "undefined",但我猜现在它正在做某事?为什么它是空白的?我该如何解决?

编辑: 它适用于 IE,但显然不适用于 Firefox。

我认为这里的问题是 Same Origin Policy。您正试图向与发起请求的域不同的域发出请求。

有些网站指定允许这样做的 header,但此处返回的 header 缺少 Access-Control-Allow-Origin header。

解决此问题的一种方法是在支持它的服务器上使用 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)
});