JQuery JSON проблема - PullRequest
       3

JQuery JSON проблема

1 голос
/ 30 июня 2010

посмотрите на эту функцию, пожалуйста

$(".menu_tree img.edit").click(function()
    {
        id = this.id;
        lang = '<?=$lang_id?>';
        var body_width = $("body").width();
        var body_height = $("body").height();
        $("#shadow").width(body_width);
        $("#shadow").height(body_height);
        $("#shadow").show();

        var width = $("#edit_title").width();
        var height = $("#edit_title").height();
        $("#edit_title").height(0);
        $("#edit_title").width(0);
        $("#edit_title").animate(
        {
            width: width,
            height: height
        },600);
        $.post
        (
            "get_title.php",
            {id: id, lang: lang},
            function(data)
            {
                alert("qqq");
            },
            "json"
        );
    });

в get_title.php я генерирую объект json, что-то вроде {name:"name",val:"value"}, он работает нормально, если я не написал "json", но с "json" этодаже не насторожил мой qqq: (

Есть идеи?

Спасибо

Ответы [ 2 ]

3 голосов
/ 30 июня 2010

Парсер 1.4.2 более строг, чем более ранние версии.Как отметил Михал, этот json недействителен, поскольку имена свойств не заключены в двойные кавычки.Недавно я был немного обеспокоен этой проблемой при обновлении сайта до jQuery 1.4.2.

Я настоятельно рекомендую разрешить PHP позаботиться о кодировке json для вас.Моя проблема, которая, как я подозреваю, тоже ваша, заключалась в том, что я собирал строки json вручную в PHP, а jQuery отклонял его, потому что некоторые были в одинарных кавычках.

Итак, для PHP, а не для чего-то вроде

echo "{name:'$val',val:'$val'}";
exit;

позвольте PHP сделать кодировку:

header('Content-type: application/json');
echo json_encode(array('name'=>$val,'val'=>$val));
exit;

также, добавив заголовок Content-Type для JSON, можнобольно, если вы еще этого не сделали.

3 голосов
/ 30 июня 2010

{name: "name", val: "value" } не является допустимым JSON. Ключи также должны быть строками.

{"name": "name", "val": "value"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...