Код работает только в режиме отладки

182
14 сентября 2018, 11:50

Имеется код, который отсылает данные.

 function savePost() {
    var title = $("#productName").val();
    var description = $("#productDescription").val();
    var price = $("#productPrice").val();
    var urlImage = $("#productUrl").val();
    var imageContent = null;
    if (file != null) {
        var fReader = new FileReader();
        fReader.readAsDataURL(file);
        imageContent = fReader.result;
    }
    $.ajax({
        url: "/api/productgallery/",
        method: "POST",
        data: JSON.stringify({
            title: title,
            description: description,
            price: price,
            image: imageContent
        }),
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            if (file != null)
                upload(file);
            loadGallery("tblProductGallery", function () {
            });
        }
    });
}

Но он работает только в режиме отладки, если же я выполняю его без режима отладки - то теряется содержимое imageContent и на сервер приходит null.

В связи с чем вопрос - с чем это можеть быть связано?

Answer 1

Проблема была в асинхронности - решил таким образом:

 $("#submitButton").click(function () {
    var imageContent = null;
    if (file != null) {
        var fReader = new FileReader();
        fReader.onloadend = function () {
            imageContent = fReader.result;
            savePost(imageContent);
        };
        fReader.readAsDataURL(file);      
    }        
});
function savePost(imageContent) {
    var title = $("#productName").val();
    var description = $("#productDescription").val();
    var price = $("#productPrice").val();
    var urlImage = $("#productUrl").val();
    $.ajax({
        url: "/api/productgallery/",
        method: "POST",
        data: JSON.stringify({
            title: title,
            description: description,
            price: price,
            image: imageContent
        }),
        contentType: "application/json; charset=utf-8",
        success: function (result) {
            if (file != null)
                upload(file);
            loadGallery("tblProductGallery", function () {
            });
        }
    });
}
READ ALSO
Jquery UI Drag and drop. Как подключить?

Jquery UI Drag and drop. Как подключить?

Как здесь подключить sortable() для классов и идентификаторов? Спасибо

201
Ошибка в отображении Google map API JS

Ошибка в отображении Google map API JS

API-key рабочий, не понимаю, где я про*балсяБыли ли похожие ошибки? Кто сможет помочь решить проблему

249
Условие с разным url на javaScript

Условие с разным url на javaScript

День добрыйПодскажите, как сделать, чтобы пользователь переходя на определенную страницу получал сообщение,а переходя на все последующие...

167
Разобрать проект на node-js и встроить js код в yii2

Разобрать проект на node-js и встроить js код в yii2

Возникла необходимость встроить редактор в проект на yii2

202