JSON PHP tarafından oluşturulan zaman jQuery Firebug bir JSON nesnesi geri dönmez

2 Cevap php

Test.json ve içerikleri şunlardır:

{"foo": "The quick brown fox jumps over the lazy dog.","bar": "ABCDEFG","baz": [52, 97]}

Ben şu jQuery.ajax kullandığınızda () test.json içindeki statik JSON işlemek için çağrı

$.ajax({
    url: 'test.json',
    dataType: 'json',
    data: '',
    success: function(data) {
        $('.result').html('<p>' + data.foo + '</p>' + '<p>' + data.baz[1] + '</p>');
    }
});

Ben Firebug göz atabilirsiniz bir JSON nesnesi olsun.

Ancak, bu php script yerine işaret URL ile aynı ajax çağrısı kullanırken:

<?php
    $arrCoords = array('foo'=>'The quick brown fox jumps over the lazy dog.','bar'=>'ABCDEFG','baz'=>array(52,97));
    echo json_encode($arrCoords);
?>

hangi Bu özdeş JSON nesnesi yazdırır:

{"foo":"The quick brown fox jumps over the lazy dog.","bar":"ABCDEFG","baz":[52,97]}

Ben tarayıcıda doğru çıktı ama olsun Kundakçı yalnızca HTML ortaya koymaktadır. Kundakçı GET isteğini genişletmek olduğunda hiçbir json sekme mevcut bulunmaktadır.

2 Cevap

Denemek

<?php
    header('Content-type: application/json');
    $arrCoords = array('foo'=>'The quick brown fox jumps over the lazy dog.','bar'=>'ABCDEFG','baz'=>array(52,97));
    echo json_encode($arrCoords);
?>

Büyük olasılıkla içerik türü başlığı ayarlamak gerekir:

// this is the "offical" content-type
header('Content-Type: application/json');
// or - this will probably work too
header('Content-Type: text/javascript');