Имеется код, который отсылает данные.
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.
В связи с чем вопрос - с чем это можеть быть связано?
Проблема была в асинхронности - решил таким образом:
$("#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 () {
});
}
});
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости