2014-12-17 2 views
-1

Я видел пару других потоков относительно похожих, но я все еще нахожу свою проблему уникальной, поэтому надеюсь, что вы, ребята, дали мне шанс.Сохранить переменную с удаленного сервера с помощью XMLHttpRequest

Что я хочу сделать: использовать прокси, чтобы обойти политику одного источника и сохранить эти значения (которые изменяются и должны быть проверены таймером) на переменные, которые можно изменить.

Сервер содержит 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'); 
?> 

Так что я хочу сделать, это хранить данные в переменные, которые я могу изменять, не показывать его внутри DIV с помощью innerHTML. Предпочтительно, чтобы это часто делалось для изменений.

Предложения?

Я могу добавить, что у меня есть разрешение от владельца сервера на получение информации и ее использование, но нет возможности добавить скрипт на свой сервер, следовательно, попытка обхода прокси.

ответ

0

Вы извлекаете данные в формате JSON?

{ "Title":"Tile of song" ,"Artist":"The artist" ,"Album":"The album" ,"CDCover":"/covers/randomcover.jpg" }

Чтобы загрузить это в вар вам нужно 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.