私は同じ問題の非常に多くの Q&A を読みましたが、特定の問題を抱えているものはありません (少なくとも私が見つけることはできませんでした)。
JSON文字列をエコーバックするphpスクリプトがあります
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"}}
そして、json を読み取る web jquery スクリプト:
$.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 に追加しました。- PHPに送信
header('Content-Type: application/json');
しましたが、HTMLが返されません。 - JSONLintで JSON の有効性を確認しました
- いくつかの回答が言うようにを削除しようとしまし
data: "json"
たが、それでも返されますparsererror
- jQuery 1.8.3 の使用