jQuery / CreateJS $ .ajax «растровое изображение не определено»

Я унаследовал конструктор продуктов на основе CreateJS и jQuery.

Вызов $ .ajax обернут в функцию с именем UrlLoader

function UrlLoader(params) {
        $.ajax({
            url: url,
            type: 'POST',
            data: postData,
            contentType: "application/x-www-form-urlencoded",
            beforeSend: function () {
                 console.log('sending');
            },
            success: function (result) {
                self.sucess(result);              
            },
            error: function (xhr) {
                console.log("Error: " + xhr.statusText);
            }

        }).fail(function () {
            self.showError("Can't load remote data");
        });
}

Функция UrlLoader (params) не выполняет никакой другой функции, кроме как обертка для вызова $ .ajax.

params - это объект JavaScript:

Когда дизайн создается и сохраняется, система работает как положено. Когда сохраненный дизайн загружается из того же источника, он был сохранен и затем сохранен снова, ajax-вызов молча завершается неудачей без ошибок.

Оборачивание только вызова $ .ajax в блок try ... catch дает ошибку:

TypeError: bitmap is undefined

Объекты для первоначального сохранения и последующего сохранения практически идентичны. Оба содержат один и тот же dataurl объекта изображения, и другое отличие состоит в том, что один имеет «id»: 12474, element. Оба являются правильно отформатированными объектами JavaScript.

Кажется, что это ошибка CreateJS, которая не имеет смысла для меня в вызове jQuery ajax.

Как я могу определить источник этой ошибки?

Всего 1 ответ


Я нашел проблему. Объект клонируется из объекта CreateJS с использованием $ .extend. Это, очевидно, также клонирует некоторый неизвестный метод CreateJS.

Изменение:

var postData2 = $.extend(true, {}, self.params.params); 

Для того, чтобы:

var postData2 = $.extend(true, {}, self.params.params); 
var postData = JSON.parse(JSON.stringify(postData2)); 

кажется, чтобы удалить ненужные вызовы методов.

Дополнительные отзывы о базовом механизме того, почему это сработало, были бы потрясающими.


Есть идеи?

10000