Я пытаюсь отправить изображение в кодировке base64, используя ajax, но в коде за полученной строкой указано значение null.Я отправлял это в массиве, но даже если я отправляю это отдельно, полученная строка все еще нулевая.
- Я установил maxQueryString, maxAllowedContentLength и maxRequestLength в моем web.config более чем достаточно долго (я тестирую изображение размером 3 КБ).
- I 'мы пытались отправить только одну строку, в объекте JSON, используя stringify, и в строковом массиве (то, что приложение делало изначально).
- Я также пытался запустить приложение в других браузерах, но происходит то же самое,ImageRes будет нулевым на стороне сервера.
Запрос:
var Name = $('#crtvName').val();
var ImageRes = encodeImagetoBase64($("#mainInp"));
var crtvData = JSON.stringify([
['Name', Name],
['ImageRes', ImageRes]
]);
$('#saveBtn').on('click', function() {
var Name = var Name = $('#crtvName').val();
var ImageRes = encodeImagetoBase64($("#mainInp"));
$.ajax({
type: "GET",
url: "./app/?handler=SaveData",
data: {
inData: crtvData
},
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (req, err) { console.log('error\n' + err); }
});
}
функция кодирования
function encodeImagetoBase64(input) {
var element = input[0];
if (element.files && element.files[0]) {
var file = element.files[0];
var reader = new FileReader();
reader.onloadend = function () {
return this.result;
}
reader.readAsDataURL(file);
}
}
Код за
public JsonResult OnGetSaveData(string inData){
//doing things with the data
string[][] input = Newtonsoft.Json.JsonConvert.DeserializeObject<string[][]>(inData);
}
Я не получаю никаких сообщений об ошибках.Я должен просто получить строку в коде на стороне сервера, но если я попытаюсь отправить строку base64, ничего не получится.Отправка любой другой строки работает нормально.