Ben bunu anlamaya çalışıyorum bir baş ağrısı biraz alıyorum. Ajax ile bir PHP-script bazı json-veri istemek için ben jQuery işlevini kullanarak ediyorum:
$.ajax({
type: 'GET',
cache: 'false',
url: ajaxUrl,
data: dataString,
success: updatePage
});
: I don't için PHP başlığındaki içerik türünü belirlerseniz
header('Content-type: application/json');
Sonra sunucudan benim yanıt bu gibi görünüyor:
{"content":"new content"}
Ve içerik türü otomatik olarak text / html olarak ayarlanır. JQuery ajax seçenekleri dataType kaldırılırsa, bu 'akıllı tahmin' bir varsayılan kullanır. I strongly updatePage bir nesne ayrıştırılır çünkü jQuery json olarak tepki verileri tanır varsayarak kulüpler. updatePage json js kütüphanesini (json2.js) kullanır ve bu yapar:
function updatePage(data) {
$dataObj = JSON.parse(data);
}
When the function is called upon ajax succes, everything works fine. No errors. Here's the strange thing, if I set my header to application/json as above, JSON.parse suddenly reports an error. The exact same error happens if i set my dataType to 'json' in the jQuery ajax request. The response I get from the PHP script when changing these things looks exactly like the one above. The error looks like this in Firebug:
JSON.parse
$dataObj = JSON.parse(data);
Herkes sorunun ne olduğunu bilen varsa bir uzun Tür, üzgünüm, ama onların yardım büyük beğeni topluyor. Zaman ayırdığınız için teşekkürler.