Обработка multipart/form-data на сервере NodeJs

275
17 ноября 2017, 09:28

Доброго времени суток! Пытаюсь обработать multipart/form-data и решительно ничего не получается. По рекомендации Гугла решил использовать модуль formidable. Вроде бы все делаю, как рекомендуют, но модуль выбрасывает ошибку:Error: bad content-type header, no multipart boundary. При этом логи показывают, что content-type multipart/form-data. Код сервера:

server.on("request", function(req, res){
var urlParse = url.parse(req.url);
if (urlParse.pathname == "/load") {
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields, files){
            if(err) console.error(err);
            console.log(fields);
            console.log(files);
        });
    //чтобы проверить, что запрос приходит раскомментируйте код ниже и 
    //закомментируйте выше
        // var data ="";
        // req.on('data', function(chunk){
        //  data += chunk;
        // })
        // req.on("end", function(){
        //  console.log(data);
        //  res.writeHead(200, {"Content-Type": "application/json"});
        //  res.end(data);
        // })
    };
    }

js

finishBtn.onclick = function(){
    var formData = new FormData(document.forms.baseIdForm);
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "/load");
    xhr.setRequestHeader("Content-Type","multipart/form-data");
    xhr.send(formData);
    xhr.onreadystatechange = function(){
            if(xhr.readyState != 4) return;
            if(xhr.status == 200){
                console.log(xhr.responseText);
            }
        }
}

html

<form name="baseIdForm">
    <input type="text" name="pact" placeholder="№ договора" style="">
    <input type="text" name="name" placeholder="Название" size="40">
    <input type="text" name="price" placeholder="Цена">
    </form>
     <button type="button" id="finishBtn">Создать</button>

В чем ошибка?

READ ALSO
Подскажите куда и как добавить .js

Подскажите куда и как добавить .js

Хочется на форуме указать ссылку на таймер, значит нужно куда-то добавить скрипт, попытался добавить на jsfiddlenet но не получилось

228
Как заставить работать htaccess mbstring.func_overload на PHP 5.6

Как заставить работать htaccess mbstring.func_overload на PHP 5.6

Начиная с версии PHP 53 менять в

297