Отправить данные поста как curl - PullRequest
0 голосов
/ 13 декабря 2018

Я использую эту команду curl для отправки файла на веб-сервер

curl -i -X POST -H 'Content-Type: application/json' -d @./mylocalfile -k https://192.168.1.10:8283/here

Вместо этого я хочу использовать простую веб-страницу, где я могу выбрать mylocalfile, и у меня есть

<html>
<body>
    <input class="file" type="file" id="fafafa" name="fileupload" /><br/>
    <br/>
    <input type="button" value="Submit" onclick="xhrSubmit();" />
    <script type="text/javascript ">
        function xhrSubmit() {
            var file_obj = document.getElementById('fafafa').files[0];
            var fd = new FormData();
            fd.append('fafafa', file_obj);
            xhr = new XMLHttpRequest();
            xhr.open('POST', 'https://192.168.1.10:8283/here', true)
            xhr.setRequestHeader('Content-type', 'application/json');
            xhr.send(fd);
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4) {
                    var obj = JSON.parse(xhr.responseText);
                    console.log(obj);
                }
            };
        }
    </script>
</body>
</html>

Но когда я использую веб-страницу веб-сервера, я получаю ответ, что он ожидает объект или массив.

Как я могу изменить код javascript для отправки данных, таких как команда curl, которая без проблем публикует файл навеб-сервер?

Полное исключение для буста со стороны моего сервера:

Exception <unspecified file>(1): expected object or array

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

Ваш тип контента неправильный.Вы не отправляете JSON на ваш сервер.

Попробуйте установить тип контента в application / x-www-form-urlencoded .

0 голосов
/ 11 марта 2019

В конце концов, проблема заключалась в том, что там было много новых строк в сообщении полезной нагрузки json и curl, но браузеру было все равно.

0 голосов
/ 13 декабря 2018

Я бы сказал, проверьте, что вы получили с помощью версии curl.Это не может быть приложение / JSON и данные файла.Вам нужны multipart / form-data.

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