В моем приложении я вызываю API с типом POST, используя функцию jquery $.ajax. Когда данные большие, часть данных усекается. Но когда я отправляю те же данные с помощью POSTMAN, все работает нормально, и сервер получает полный запрос. Проблема возникает только тогда, когда я вызываю API в JavaScript с помощью Jquery. Мое приложение построено на Electron. Ниже приведен код вызова API:
Код: Выделить всё
$.ajax({
async: false,
type: "POST",
url: 'API_URL_HERE',
headers: {
'Accept': 'application/json',
'Authorization': authToken,
},
data: {
var1: "123456789",
var2: 10,
var3: {
'var3_data': array_containing_strings,
'var3_version': 20
},
var4: 80,
var5: "123456789"
},
success: function (data) {
// Some operation here
},
error: function (xhr, ajaxOptions, thrownError) {
// Some operation here
}
});
Я переименовал имена переменных. Проблема связана с переменной
array_tain_strings. Это массив, содержащий строки. Если array_taining_strings содержит так много строк, сервер не получает переменные
var4 и
var5. Я пробовал использовать массив длиной 13000, в то время как каждый элемент массива представляет собой строку длиной 400 символов (поэтому размер = 13000 * 400 = 5200000). Как ни странно, данные, отправленные на сервер, имеют действительный формат JSON, в запросе отсутствуют только переменные. Еще одна странность: когда я открываю вкладку сети в консоли разработчика, в сетевом вызове отображаются полные данные, единственный сервер их не получает. Конфигурация сервера также не является проблемой, поскольку тот же вызов API с теми же данными работает нормально при использовании Postman.
Подробнее здесь:
https://stackoverflow.com/questions/511 ... ata-is-big