<!DOCTYPE html>
<html>
<head>
<title>test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>
<div id="div1">dv1</div>
<div id="div2">dv2</div>
<script type="text/javascript">
function getData(){
$.ajax({
type:"GET",
url:"j.json",
dataType:"json",
success: function(jsondata){
output(jsondata);
}
});
}
function output(json){
//var Data = eval('(' + json + ')');
var html = '';
//alert(Data.length);
for(var i=0;i<json.length;i++){
html += ' name:' + json[i].name + ' age:' + json[i].age;
}
document.getElementById('div1').innerHTML = html;
document.getElementById('div2').innerHTML = json[0].name;
}
setTimeout(getData, 3000);
</script>
</body>
</html>
Файл j.json
[{"name":"aaa","age":18},{"name":"bbb","age":19}]
Целью вышеуказанного кода является обновление содержимого div с данными в локальном json файле. Я пробовал это в IE и Chrome, но не работал. Я много гугл, но все еще не могу понять.
У кого-нибудь есть подсказки? Заранее спасибо.
Вы используете веб-сервер?
Вызов AJAX не работает с URL, начинающимся с file://
. Это связано с теми же требованиями к происхождению, которые были установлены для помощи в межсайтовом сценарии (XSS). Подробнее см. Здесь.
И, как я заметил, вы должны использовать $(document).ready(function(){ your code })
вместо setTimeout(getData, 3000);