Mam taki problem:
Jak w temacie - zwraca mi błąd. Przemianowałem już funkcję nawet na podstawową wersję $.ajax() ($.getJSON to alias dla $.ajax + $.parseJSON jak dobrze pamietam):
$.ajax({ type: "POST", url: "ajax.php?getAll", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data) { $("select option").remove(); $(data).each(function(index,item) { }); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.responseText); } });
Kod się ładnie przesyła (w Firebug widać), ale zamiast success: wykonuje się error: a w responseText to właśnie zawartość zwracana. Oto ona:
[{"name":"rtyryrtyrtyrtyrtyrty","desc":"hrtey retyber e","dir":"60a5c2e031f46ded08e885112710cfcc"}]
1. Testowe środowisko to Zend Server + Windows XP (ponoć to może mieć znaczenie)
2. Ustawiłem na początku skrytpu ajax.php Header("Content-type: application/json")
3. Skrypt, który dostaję w wyniku wrzucam do JSON Validatora i pokazuje błąd. Wymieniam jedynie pierwszy nawias kwadratowy (zaznaczam go po prostu i wciskam guzik na klawiaturze z tym samym nawiasem) i JSON Validator twierdzi, że już kod jest poprawny.
WTF?

W edytorze szesnastkowym faktycznie odpowiedź zawiera niewidoczne znaki na początku (5 znaków o kodzie %3F). Po ich skasowaniu wszystko jest ok. Nie wiem tylko jak pozbyć się ich przy odpowiedzi ze skryptu PHP.
Pododawałem już gdzie mogłem kodowania (header z php, ajaxSetup dla jquery, meta w head strony, co jeszcze?) i wciąż dostaję Invalid JSON
