将 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)
});
我正在尝试从名为 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)
});