Проблема
Я отправляю цвет HSV с помощью почтового запроса Jquery ajax. Цвет HSV (Hue, Saturation и Value) - это целые числа 0-255. Поэтому для H, S и V вместе я посылаю 3 байта, представляющих каждое из их значений. Однако всякий раз, когда один из 3 байтов равен нулю (0), я получаю ошибку «net :: ERR_EMPTY_RESPONSE». Сервер не получает почтовый запрос при возникновении ошибки, а средства разработки показывают остановку 5 с.
Я пытался
Я проверил на стороне сервера, и это не проблема. Я немного протестировал с ajax, и каждый раз, когда я ставлю ноль в массиве Uint8Array, независимо от того, равен ли H 0 или S или V. Отправка нулевого байта каждый раз приводит к ошибке. Это не проблема с CORS, потому что сервер правильно обрабатывает предварительную проверку CORS, и запрос данных с ненулевым байтом всегда работает.
Некоторый код"getHSVArray" возвращает массив Uint8Array со значениями HSV в диапазоне 0-255. Chrome и Firefox позволяют передавать типизированные массивы (Uint8Array) в данные XMLHTTPRequest. Полезная нагрузка запроса отправляется в формате UTF-8. Поэтому любые нули записываются как управляющий символ NUL UTF-8, который, как я считаю, вызывает проблему.
$("#sendBtn").click(() => {
var byteArray = getHSVArray(kendo.parseColor(colorSelected).toHSV());
// ex. Uint8Array([255, 255, 255]);
// error ex. Uint8Array([0, 255, 255]); or Uint8Array([255, 0, 255]);
$.ajax({
url: "http://192.168.0.25/",
type: "POST",
contentType: false,
data: byteArray,
processData: false,
crossDomain: true
});
});
Я ожидаю Он должен отправлять все 3 байта в обычном режиме, как это происходит, когда все 3 байта HSV являются ненулевыми числами 1-255.