После использования Fetch я все еще получаю Multipart Boundary в activ.js при отправке formData - PullRequest
0 голосов
/ 30 октября 2019

Я серьезно запутался, как решить эту составную границу при использовании Axios ,act.js и multipart / formdata. Я уже 2 недели пытаюсь решить эту проблему, но мне кажется, что я все ближе к ее решению, но она все равно застряла, независимо от того, какое решение я пробую.

Я читаю и пытаюсь найти решение из этой темы:

как отправлять несколько частей-форм-данных-использовать-извлекать-в-реакции-родной

как отправлять-несколько частей-форм-данных-с-antd-upload-реагировать

как отправить несколько частей формы-данных-от-реакции-js-с-изображением

это моя create Order функция в orderAction.js:

function createOrder(data) {
    return dispatch => {
        let apiEndpoint = 'order';
        let payload = new FormData();
        // payload.append('orderImage', data.orderImage);

        // console.log("Cek Image : ", data.orderImage);
        for (const file of data.orderImage) {
            payload.append('orderImage', file)
        }

        payload.append('userId', data.userId);
        payload.append('materialId', data.materialId);
        // payload.append('materialId', '5d79930c8c4a882f44b1b0fb');
        payload.append('color', data.color);
        payload.append('description', data.description);
        payload.append('quantity', data.quantity);
        payload.append('city', data.city);
        payload.append('detailAddress', data.detailAddress);

        console.log("Cek Data : ", payload);

        fetch(config.baseUrl + apiEndpoint, {
            method: 'POST',
            headers: {
                'Authorization': 'Bearer ' + localStorage.getItem('token'),
                'Content-Type' : 'multipart/form-data; boundary=----WebKitFormBoundaryHl8DZV3dBSj0qBVe'
            },
            body: payload
        })
        // orderService.post(apiEndpoint, payload)
        //     .then(res => {
        //         if(res.data.status === 200) {
        //             alert(res.data.Message);
        //             dispatch(createOrderSuccess(res.data));
        //             history.push('/user-order');
        //         } else {
        //             dispatch(createOrderFailed());
        //             alert(res.data.Message);
        //         }
        //     })
    };
}

Может кто-нибудь помочь мне решить эту проблему? Я совершенно запутался в этой проблеме

Редактировать 1 после попытки использовать решение @narasimha, наконец, я избавился от границы составного элемента, но у меня появилось странное поведение, когда данные успешно кодировались следующим образом:1026 *

You can see the Base64 image finally encoded in headers

но Когда я пытаюсь проверить ответ, photoUrl возвращает null или `` как это:

You can see photoUrl return null array

и когда я пытаюсь использовать бессонницу или почтальона, он успешно генерирует photoUrl следующим образом:

You can see at photoUrl array it return the imageurl

где яздесь не так?

1 Ответ

0 голосов
/ 30 октября 2019

У меня вчера была такая же проблема. Проблема была с типом контента. Я использовал тот же заголовок типа контента, что и вы. Дело в том, что я удалил тип контента и позволил API fetch () обрабатывать его автоматически. Это сработало !!

...