【问题标题】:Using react, axios and django, i'm trying to send data from my client side to my server but I can't get the data使用 react、axios 和 django,我正在尝试将数据从客户端发送到服务器,但我无法获取数据
【发布时间】:2023-04-10 17:42:01
【问题描述】:

我正在尝试从客户端接收 POST 数据,但出现以下错误:

TypeError: registrar_usuario() missing 1 required positional argument: 'usuario'

这是我的客户端代码:

const onSubmit = e => {
    e.preventDefault();
    alert("Enviando...");
    const nuevoUsuario = {
        nombre: datosUsuario.nombre,
        apellido: datosUsuario.apellido,
        correo: datosUsuario.email,
        contrasenia: datosUsuario.password
    }
    //const resultado = ApiUtils.registrarUsuario(nuevoUsuario);
    const resultado = axios.post('http://localhost:8000/api/registrar_usuario/', nuevoUsuario);
    console.log(resultado);
}

这里是服务器端:

@api_view(['POST']) 
def registrar_usuario(request, usuario):
    print(usuario)
    return Response(status=status.HTTP_200_OK)

我需要帮助,这是我第一次使用 react、axios 和 django,所以任何建议都会有所帮助

【问题讨论】:

  • 你的urls.py呢?

标签: javascript python reactjs django axios


【解决方案1】:

添加JSON.stringify(nuevoUsuario)

如果你添加它们的标题会更好


const onSubmit = e => {
    e.preventDefault();
    alert("Enviando...");
    const nuevoUsuario = {
        nombre: datosUsuario.nombre,
        apellido: datosUsuario.apellido,
        correo: datosUsuario.email,
        contrasenia: datosUsuario.password
    }
    return axios.request({
       method:”POST”,
       headers:{
          “Content-Type”: “Application/json”
        },
        data: JSON.stringify(nuevoUsuario)
      }).then(console.log);
}


【讨论】:

  • 我修复了它,问题是我期待一个参数“usuario”,但我想它永远不会出现,因为它是一个 post 方法。感谢您的示例,我意识到数据在请求的“数据”字段中,所以在 django 中我只打印 request.data 的内容,就是这样。
猜你喜欢
  • 2023-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
  • 2021-10-30
  • 2019-03-05
  • 2013-04-11
相关资源
最近更新 更多