Я пытаюсь использовать функцию getJSON в jQuery для импорта некоторых данных и запуска функции обратного вызова. Функция обратного вызова не запускается. Однако, если я пытаюсь использовать то же самое с функцией get, он отлично работает. Как ни странно, он работает с функцией get, даже когда я передаю "json" в качестве типа. Почему это происходит? Я протестировал следующий файл в Firefox 3 и IE 7:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>ajax test</title>
<script type="text/javascript" src="/jquery-1.3.2.min.js"></script>
</head>
<body>
<input type="button" id="test1" value="get">
<input type="button" id="test2" value="getJSON">
<input type="button" id="test3" value="get with json type">
<script type="text/javascript">
$("#test1").click(function() {
$.get("index.html",
function(response) {
alert('hi');
//works
}
)
});
$("#test2").click(function() {
$.getJSON("index.html",
function(response) {
alert('hi');
//doesn't work
}
)
});
$("#test3").click(function() {
$.get("index.html",
function(response) {
alert('hi');
//works
},
"json"
)
});
</script>
</body></html>
Это, похоже, происходит независимо от того, какой URL я получаю, если он находится в том же домене. Я попытался передать некоторые данные, и это не имеет никакого значения.
Конечно, я могу обойти проблему, используя функцию get, как это было в моей третьей тестовой функции, но мне все еще интересно, почему это происходит.
Я знаю, что здесь есть > подобный вопрос, но он не ответил на мой вопрос.