我看到其他一些线程相对类似,但我仍然觉得我的问题很独特所以我希望你们给我一个机会。
我想做什么:使用代理绕过相同的原始策略并将这些值(更改并需要由计时器检查)保存到可以修改的变量中。
服务器包含data.asp,它看起来像这样并且不时更新(尽管有更多的数据):
{ "Title":"Tile of song" ,"Artist":"The artist" ,"Album":"The album" ,"CDCover":"/covers/randomcover.jpg" }
我尝试的方法与http://qnimate.com/same-origin-policy-in-nutshell/#Same_Origin_Policy_for_AJAX上的方法类似。如果你们不想关注这个链接,我也会在这里发布数据。
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","http://www.qnimate.com/ajaxdata.php",true);
xmlhttp.send();
}
</script>
</head>
<body>
<button type="button" onclick="loadXMLDoc()">Request data</button>
<div id="myDiv"></div>
代理文件:
<?php
echo file_get_contents('http://www.qscutter.com/ajaxdata.txt');
?>
所以我想要做的是将数据存储到我可以改变的变量中,而不是使用innerHTML在div中显示它。最好经常检查这一点,以便进行更改。
建议?
我可以补充一点,我获得了服务器所有者的许可,可以检索信息并使用它,但不可能将脚本添加到他们的服务器,因此代理绕过尝试。
答案 0 :(得分:0)
您正在以JSON格式检索数据吗?
{ "Title":"Tile of song" ,"Artist":"The artist" ,"Album":"The album" ,"CDCover":"/covers/randomcover.jpg" }
要在var中加载,您需要JSON.parse
。
例如
var data = JSON.parse(xmlhttp.responseText);
通过此函数解析时,对象data
包含属性title
,artist
,album
和CDcover
。
现在您可以修改对象
data['title'] = "I'll Be There This Christmas";
data['artist'] = "Gary Fomdeck";
//etc.
请阅读JSON的介绍。