9minday
9minday

Reputation: 393

Axios post request not working with Django Rest Framework

I am trying to use Axios post to create a user in my Django Rest Framework api.

Currently getting "Request failed with status code 400" when trying to post.

It works perfectly fine in postman.

drfServer.js

import axios from 'axios';

export default axios.create({
    baseURL: 'https://example.com'
});

AuthContext.js

const signup = (dispatch) => async ({ email, password }) => {
    try {
        const response = await drfApi.post('/user/',
            {
                data: {
                    username: email,
                    password: password
                }
            }
        );
        // await AsyncStorage.setItem('token', response.data.token);
        // dispatch({ type: 'signin', payload: response.data.token });
        // navigate('Task')
    } catch (err) {
        console.log(err.message)
        dispatch({ type: 'add_error', payload: 'Something went wrong with sign up' })
    }
};

I tried using fetch and it works. But with Axios I am not getting it right.

Any ideas how to make it work?

Upvotes: 0

Views: 1348

Answers (2)

Aashay Amballi
Aashay Amballi

Reputation: 1411

Can you try this code.

const signup = ({email,password}) => dispatch => {
    return axios({
        method: "post",
        url: "your api url",
        data: { 
          username: email,
          password
        })
        .then(result => {
          console.log(result.data);
         })
        .catch(error => {
          console.log(error);
         })
};

You can find the axios example code here https://github.com/axios/axios

Upvotes: 2

gpatarin
gpatarin

Reputation: 29

Maybe you can try this :

const response = await drfApi.post('/user/', {
                    username: email,
                    password: password
                   }
                 );

As using axios.post will automatically take the 2nd param and make it an object with data key

Upvotes: -1

Related Questions