首页 > 解决方案 > 无法从表单数据中提取键值对

问题描述

应用程序堆栈:Django React

我正在尝试从 react 发送的请求中提取电子邮件和密码。

我没有得到电子邮件和密码,而是得到了 None 值。

发送的数据为 FormData 类型。

这是后端的功能处理登录(仅需要部分):

def signin(request):
    if not request.method == 'POST':
        return JsonResponse({'error': 'Send a post request with valid paramenter only'})

# username = request.POST['email']
# password = request.POST['password']

username = request.GET.get('email')
password = request.GET.get('password')

print(username)  #printing None
print(password)  #printing None

这些是前端代码:

这是处理表单提交的函数:

const onSubmit = (event) => {
        //console.log({email,password})
        event.preventDefault();
        setValues({...values, error:false, loading:true})
        signin({email, password})
            .then(data => {
            console.log("DATA", data);   
            if (data.token){
                let sessionToken = data.token;
                authenticate(sessionToken, () => {
                    console.log("TOKEN ADDED");
                });
            }})
            .catch(e => console.log(e));
    };

这是登录功能:

export const signin = (user) => {
    const formData = new FormData();
    for(const name in user){
        formData.append(name, user[name]);
    }
    return fetch(`${API}user/login/`,{
        method:"POST",
        body:formData    //JSON.stringify(user)
    })
    .then((response) => {
        console.log("SUCCESS", response);
        return response.json();
    })
    .catch((err) => console.log(err));
};

这是验证功能:

export const authenticate = (data,next) => {
    if(typeof window !== undefined){
        localStorage.setItem("jwt", JSON.stringify(data));
        next();
    }
};

我也在邮递员上测试过,同样的错误即将到来。谁能帮助我如何从请求中获取电子邮件和密码。

标签: javascriptpythonpython-3.xdjango-rest-frameworkdjango-react

解决方案


推荐阅读