Publikuję dane JSON na serwerze ASP.NET MVC2. Publikuję duże ciągi JSON (które zawierają strumień pliku zakodowany w base64, odczytany z lokalnego systemu plików). Wywołanie ajax jQuery działa dobrze do wielkości plików około 2,5 MB. Po przekroczeniu tego rozmiaru wywołanie ajaxa nie działa (nigdy nie dostaje się do kontrolera). Nie mogę dokładnie wykryć błędu - wydaje się, że nie wypełnia on zmiennych błędów.jQuery .ajax post kończy się niepowodzeniem z dużym obiektem JSON
AJAX połączenia jest następujący:
$.ajax({
type: "POST",
dataType: 'json',
timeout: 10000,
url: "/Molecule/SaveMolecule",
data: { jsonpost: postdata, moleculetype: _moleculeType, moleculefilestream: _moleculefilestream, changedproducts: stringifiedChangedProducts }, // NOTE the moleculeType being added here
success: function (data) {
if (data.rc == "success") {
$.log('ServerSuccess:' + data.message);
molecule_updateLocalInstance();
_bMoleculeIsDirty = false;
if (bReturnToMoleculeList != null && bReturnToMoleculeList == true) {
navigator_Go('/Molecule/Index/' + _moleculeType);
}
else {
_saveMoleculeButtonFader = setTimeout(function() {
$('#profilesave-container').delay(500).html('<img src="/content/images/tick.png" width="32px" height="32px" /><label>' + _moleculeSingularTerm + ' was saved</label>').fadeIn(500);
_saveMoleculeButtonFader = setTimeout(function() { $('#profilesave-container').fadeOut(1000); }, 2000);
}, 500);
}
} else {
$.log('ServerUnhappy:' + data.message);
RemoveMoleculeExitDialog();
}
}
, error: function (jqXHR, textStatus, errorThrown) {
alert('Save failed, check console for error message:' +textStatus+' '+ errorThrown);
MarkMoleculeAsDirty();
$.log('Molecule Save Error:' + helper_objectToString(textStatus+' '+errorThrown));
}
});
gdzie _moleculefilestream jest duży strumień base64 kodowane.
Moje web.config zawiera następujące elementy:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="50000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
Ktoś ma jakieś dobre pomysły?
To wystarczyło - dzięki! – Journeyman