Получение строки через Ajax в веб-приложении .net 8 не работает, если длина строки составляет 4096 символов или болееC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Получение строки через Ajax в веб-приложении .net 8 не работает, если длина строки составляет 4096 символов или более

Сообщение Anonymous »

Я использую Ajax для получения диаграммы размером около 65 000 байт в формате Base64 с контроллера с помощью:

Код: Выделить всё

ReturnResult ret = new() { Error = "" };

using var ms = new MemoryStream();
ChrtGraph.SaveImage(ms, ChartImageFormat.Png);
ret.Img = Convert.ToBase64String(ms.ToArray());

return System.Text.Json.JsonSerializer.Serialize(ret)
и этот класс:

Код: Выделить всё

public class ReturnResult
{
public string? Img { get; set; }
public required string Error { get; set; } = "";
}
и этот ajax-вызов:

Код: Выделить всё

var form = $('#__AjaxAntiForgeryForm'),
token = $('input[name="__RequestVerificationToken"]', form).val(),
GetTextureChart = {};

GetTextureChart.Width = 943;
GetTextureChart.Height = 466;

$.ajax({
url: "Chart/GetTextureChart",
type: "POST",
data: JSON.stringify(JSON.stringify(GetTextureChart)),
contentType: "application/json; charset=utf-8",
dataType: "json",
headers: {
RequestVerificationToken: $(token).val()
},
success: function (response) {
var ret = JSON.parse(JSON.stringify(response));

if (ret.Error == "")
$("#chrtgraph").attr('src', 'data:image/png;base64,' + ret.Img);
else
$("#lblerr").text("Error " + ret.Error);
},
failure: function (response) {
$("#lblerr").text("fail " + response.responseText);
},
error: function (response) {
$("#lblerr").text("Error " + response.responseText);
}
});
Если длина строки из ret превышает 4095 байт, произойдет сбой. Раньше вы могли добавить настройку в web.config: но сейчас файла web.config нет.
Я просмотрел все и нашел разные вещи, такие как добавление в program.cs:< /p>

Код: Выделить всё

builder.WebHost.ConfigureKestrel(serverOptions =>
{
serverOptions.Limits.MaxResponseBufferSize = 100000;
});
но ничего не работает. Есть ли способ получить изображение большего размера с помощью ajax-вызова?

Подробнее здесь: https://stackoverflow.com/questions/788 ... f-string-i
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»