[ad_1]
I’m trying to submit with a POST request some data inserted in a text editor, that can contain images in base64 format, pasted by the user. I pass a JSON object with tyhe text in one of the properties, but, when the text contains base64 images, I often obtain an error 500 when the request is sent in this line in jquery.js xhr.send((s.hasContent && s.data) || null);
This error seems to be random, sometimes with same data is not shown and the data is saved, other times the error occurs.
This is the line where I collect the data and call the function that calls the web method to save
function SaveKb() {
showWaiting();
var saveUrl = "KnowledgeBase.aspx/SaveKb";
var keywords="";
keywords = $('#myTags span.tagit-label').map(function () {
return $(this).text();
}).get().join('; ');
var codesiteid = $('#site').val();
var chatWorkGroup;
var data = {
kb: {
CODE_HELPSIPUBLICKBID: $('#kbid').val(),
CODE_SITEID: $('#site').val(),
CODE_LANGUAGEID: $('#language').val(),
CODE: ($('#thirdlevelcategory').val() != null ? $('#thirdlevelcategory').val() : -1),
FLAG_PUBLISHED: $('#published').prop('checked'),
CODE_HELPSIPUBLICKBCATEGORYID: ($('#thirdlevelcategory').val() != null ? $('#thirdlevelcategory').val() : -1),
FLAG_ISCHATLINK: $('#chat').prop('checked'),
DESC_workgroupJID: $('#chatWorkgroup').val(),
CODE_CONTACTFORMID: $('#contactform').val(),
FLAG_AVAILABLEFORAGENT: $('#foragent').prop('checked'),
FLAG_AVAILABLEFORWEB: $('#forweb').prop('checked'),
DESC_ARTICLETITLE: escapeHtml($('#title').val()),
DESC_ARTICLENUMBER: $('#articlenumber').val(),
DESC_ARTICLEQUESTION: CKEDITOR.instances.DESC_ARTICLEQUESTION.getData(),
DESC_ARTICLEANSWER: CKEDITOR.instances.DESC_ARTICLEANSWER.getData(),
DESC_ARTICLEANSWER_TYPE: 'html',
DESC_KEYWORDS: keywords,
Generazioneautomaticakeywords: $('#generazioneautomaticakeyword').prop('checked')
}
};
data.kb.DATE_TIMECREATED = mUTC2Loc();
data.kb.DATE_TIMEUPDATED = mUTC2Loc();
if ($('#kbid').val() == -1) {
data.kb.CODE_CREATEDBYUSERID = $('#hfCODE_USERID').val();
} else {
data.kb.CODE_UPDATEDBYUSERID = $('#hfCODE_USERID').val();
}
postData(false, saveUrl, data, onSaveKbCompleted, onSaveKbError);
}
function postData(isAsync, jUrl, data, onSuccess, onError) {
var params = {
type: 'POST',
url: jUrl,
contentType: "application/json; charset=utf-8",
dataType: "json",
async: isAsync,
success: onSuccess,
error: onError
};
if (data != '') {
params.data = JSON.stringify(data);
}
$.ajax(params);
}
I thought it is because the data size was bigger than the maxJsonLength property in Web.config, but my data length is lower than the maxJsonLength. Further, with the same data sometimes the error occurs and sometimes not. I can’t figure out why I have this error. Thanks
[ad_2]