Отправка двоичных данных через Jquery Ajax - PullRequest
0 голосов
/ 10 июля 2019

Я хочу отправить двоичные данные поста с помощью jquery ajax на серверную часть сервера, но я не могу добиться успеха с ним.

Данные об успешном посте, подобные этим

Success Result

Success result source

Я использую код, подобный этому

    var newBoundary = createRandom(16)
var datax  = '------WebKitFormBoundary'+ newBoundary +'\n'
    datax += 'Content-Disposition: form-data; name="queryOptionsDTO"; filename="blob"\n'
    datax += 'Content-Type: application/json\n\n'

    datax += '{"queryPage":{"initialPage":0,"pageSize":15},"sortInfo":{"sortFields":[{"propertyName":"updateDate","ascending":false}]},"queryParameterDTOs":[{"queryParameterType":"SIMILARITY","propertyName":"kurum.gorunenAd","similarityStrategy":"START"},{"queryParameterType":"SIMILARITY","propertyName":"markaAdi","similarityStrategy":"START"},{"queryParameterType":"EQUALITY","propertyName":"barkodNumarasi","value":"'+ barkod +'"},{"queryParameterType":"SIMILARITY","propertyName":"piyasayaArzIsmi","similarityStrategy":"START"},{"queryParameterType":"SIMILARITY","propertyName":"urunCinsi","similarityStrategy":"START"},{"queryParameterType":"CONTEXT","propertyName":"menseiUlkeAdi","similarityStrategy":"START"},{"queryParameterType":"EQUALITY","propertyName":"ucYasAltiCocuklarIcinUretilmis"},{"queryParameterType":"EQUALITY","propertyName":"ithalImalBilgisi"}],"queryTotal":false}\n'

    $.ajax({
     beforeSend: function(xhrObj){
            xhrObj.setRequestHeader("anonymousUtsToken",sessionStorage.getItem("anonymousUtsToken"));
            xhrObj.setRequestHeader("preferredLocale","tr-TR");
            xhrObj.setRequestHeader("Accept","application/json, text/plain, */*");
            xhrObj.setRequestHeader("Content-Type","multipart/form-data; boundary=----WebKitFormBoundary"+ newBoundary);
    },
        url: '/UTS/vat/rest/vatKozmetik/kozmetikUrunSorgula',
        type:"POST",
        dataType:"binary",
        data: datax,
        processData:false,
        contentType:false,
        success:function (data, status, req) {
            console.log( req);
        },
        error:function (req, status, error) {
            console.log(req);
        }
    });

, но результат, как этот enter image description here

Как я могу отправить данные как;queryOptionsDTO: (двоичный)

1 Ответ

0 голосов
/ 10 июля 2019

Вы можете использовать объект FileReader для чтения содержимого файла:

var fileReader = new FileReader();
fileReader.addEventListener('load', function () {
   var result = fileReader.result;
   $hidden.val(result);
});
fileReader.readAsDataURL(file);

Объект FileReader считывает файл асинхронно и запускает обратный вызов при завершении.Используя это, вы можете взять содержимое файла и отправить его в AJAX, опубликовав результаты из программы чтения файлов (строка base 64).

Адаптировано из моего оригинального сообщения в блоге .

Существуют также другие плагины, такие как Uploadify , которые могут предоставить эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...