Я прочитал много-много вопросов и ответов по одной и той же проблеме, но ни у одного из них нет моей конкретной проблемы (по крайней мере, я не смог найти).
У меня есть скрипт php, который возвращает строку json
header('Content-Type: application/json');
echo $result;
Возвращен JSON (проверено с помощью JSONLint и является действительным):
{"Announcement":{"ID":1,"Type":1,"Text":"This is a test Albums announcement.","TimeStart":"1969-12-31","TimeEnd":"1969-12-31"}}
И веб-скрипт jquery, который читает json:
$.ajax({
type : "GET",
url : "http://b***s.net/S****s/GetAnnouncements.php?callback=?",
data : {get_param : "Announcement"},
dataType : "json",
error : function(jqXHR, textStatus, errorThrown) {alert(errorThrown); alert(textStatus);},
success : function(data) {alert('success');
$.each(data, function(index, element) { alert('here');
$("#announcements-list").append("<li><a id='announcements-a-" + element.ID + "' href='#announcement-details'><p>" + element.Type + ": " + element.Text + "</p></a></li>");
$("#announcements-a-" + element.ID).bind('click', function() {Announcements.AnnouncementID = element.ID;});
});
$("#announcements-list").listview('refresh');
}
});
success:
никогда не вызывается. И error:
возвращает textStatus
из "parsererror"
, а errorThrown
равно "Error: jQuery1830649454693285679_1359620502896 was not called"
- Я добавил
callback=?
к URL-адресу, чтобы обойти междоменную проблему. - Я отправил
header('Content-Type: application/json');
на php, и он не возвращает HTML. - Я проверил действительность JSON с помощью JSONLint
- Я попытался удалить
data: "json"
, как говорится в некоторых ответах, но по-прежнему возвращаетparsererror
- Использование jQuery 1.8.3
callback=?
не позволяет автоматически решить междоменные проблемы ... Сервер должен возвращать JSONP, чтобы он работал. (В противном случае это не было бы важной функцией безопасности.) - person JJJ   schedule 31.01.2013