Как передать данные в теле в get type Api в react.js ?

#javascript #reactjs #axios

#javascript #reactjs #axios

Вопрос:

Я пытаюсь передать данные в теле API типа get в react.js приложение. Я использую следующий код. Но Api не получает никаких данных.

 getUnits = ( key, text, code, limit, offset ) => {
                let data = JSON.stringify( { unit: { key, text, code, limit, offset } } );
                let config = {
                    method: 'get',
                    url: BaseURL   'unit',
                    headers: { 'Content-Type': 'application/json' },
                    data: data
                };
                axios( config ).then( res => {
                        store.dispatch( {
                            type: GET_UNIT,
                            payload: res.data.units
                        } )
                } ).catch( err => {
                    console.log(err);
                })
            })
        }
 

Комментарии:

1. Метод GET не имеет раздела body. Вы можете передавать данные через строку запроса и получать их в серверной части.

2. Но когда мы запускаем этот Api в postman. Api отвечает на предоставленные данные. Это означает, что есть способ, с помощью которого мы можем передавать данные для получения api типа в теле.

3. на какой платформе находится ваш серверный сервер? Это в NodeJS?

4. Моя серверная платформа находится в Node js. и когда мы видим код postman, который использует axios.

5. @Shoaib Нет, postman не использует axios. Какой код вы имеете в виду?

Ответ №1:

Добавляя к тому, что прокомментировала @Jayna, вы не можете отправить тело с запросом get. Вы можете сделать это в Postman и сгенерировать для него код axios, но он не будет работать из-за XMLHTTPREQUEST javascript. Тело игнорируется в запросе get по умолчанию

1вместо этого вам нужно передать параметры следующим образом:

                 let config = {
                    method: 'get',
                    url: BaseURL   'unit',
                    headers: { 'Content-Type': 'application/json' },
                    params: {
                      field1: 'field1',
                      field2: 'field2'
                    }
                };
 

Итак, я предлагаю изменить ваш URL-адрес на серверной части, чтобы принимать параметры запроса и отправлять запрос axios get следующим образом.