JQuery JSON проблема в IE7 и 8, а не в FF или Chrome (уже проверены на дополнительные запятые!) - PullRequest
0 голосов
/ 05 ноября 2010

У меня раздражающая проблема со скриптом загрузки ajax, который выдает ошибку в IE7 и 8. Я просмотрел свой код и не вижу, в чем может быть проблема.Ошибка выглядит следующим образом:

Сообщение: 'result.filename' является нулевым или не является объектом

Ответ JSON: responseText = {"result": {"success": true,"filename": "autechrea8d7909a2e964c36e04d9f53eea54f6c"}, "id": 98}

Я могу получить доступ к responseText.result.filename в других браузерах - любая идея, что может вызвать проблему IE?

Заранее спасибо!

РЕДАКТИРОВАТЬ: это контекст, в котором я получаю доступ к ответу JSON:

var uploader = new qq.FileUploader({
                element: document.getElementById('file-uploader'),
                action: '<?php echo url::base(TRUE) ?>page_images/create/' + page_id,
                debug: true,
                onComplete: function(id, fileName, responseJSON){
                    path = '/media/images/main_images/new_uploads" ?>';
                    path = path + '/' + String(responseJSON.result.filename) + '.jpg';
                    $('.page_images').prepend(
                    '<li style = "float:left; display: inline; margin-right: 5px; width: 110px; height: 140px;">' +
                    '<img src = "' + path + '" width = "100" height = "100" />' +
                    '<br />' +
                    '<a href= "/page_images/delete/' + responseJSON.id + '">' +
                    '<img src= "/media/images/icons/cross.png" alt="Delete" title="Delete" />' +
                    '</a>' +
                    '</li>');
                    deleteHandler();
                }
        }); 

Ответы [ 2 ]

1 голос
/ 03 сентября 2012

У меня была такая же проблема, в вашем действии, когда вы возвращаете свой результат Json, измените тип контента на "text / html", например так:

        return Json(new { success = false }, "text/html");

По какой-то причине IE не нравитсяэто любым другим способом.

0 голосов
/ 06 ноября 2010

В этой строке есть опечатка, или вы действительно хотите двойную кавычку и "?>" В path.

path = '/media/images/main_images/new_uploads" ?>';

Кроме того, вы действительно должны объявить все свои переменные. Я думаю, вы хотите что-то вроде этого:

var path = '/media/images/main_images/new_uploads';

Возможно, двойная кавычка сбивает с толку IE, когда вводится HTML. Не то, чтобы сообщения об ошибках IE были такими полезными.

Я бы также предложил заменить String(responseJSON.result.filename) на responseJSON.result.filename, чтобы уменьшить шум.

Кроме этого, я бы посоветовал вам внимательно посмотреть на блоб HTML, который вы готовите. Вы также можете вставить данные JSON и посмотреть, что произойдет.

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