Javascript 从React.js到节点后端的Rest调用错误

Javascript 从React.js到节点后端的Rest调用错误,javascript,node.js,reactjs,frontend,backend,Javascript,Node.js,Reactjs,Frontend,Backend,下面的代码从react.js frontend a backend node.js执行rest调用,但是当我执行rest调用时,我在后端看到了错误:非法参数未定义,为了解决这个问题,我尝试在postman中进行rest调用,一切正常,错误在哪里 Frontend React.js: import axios from 'axios'; import server from "../../../config/config"; import qs from 'qs'; res

下面的代码从react.js frontend a backend node.js执行rest调用,但是当我执行rest调用时,我在后端看到了错误:非法参数未定义,为了解决这个问题,我尝试在postman中进行rest调用,一切正常,错误在哪里

Frontend React.js:

import axios from 'axios';
import server from "../../../config/config";
import qs from 'qs';

 restlogin(email,password){ 
   
    const data = { 'Email': email,'Password': password };
     const options = {
        method: 'POST',
        headers: { 'content-type': 'application/json' },
        data: qs.stringify(data),
        url: "http://172.16.53.248:8989/login"
    }
      axios(options);
  }
后端节点.js

app.post("/login", async function(request, response) {

    var ret = false;
    try {
        //var data = request.body;
        var data = request.body;
        console.log("\n Email: "+data.Email+"\n Password: "+data.Password);

        ret = await UserController.Login(
            data.Email,
            data.Password
        );
    } catch (err) {
        ManageError.SendError("Errore in login: " + err);
        ret = false;
    }
    response.setHeader("Content-Type", "application/json");
    response.send(
        JSON.stringify({
            return: ret
        })
    );
});

我发现这里有几个问题

您正在向数据属性传递以下“qs.stringify(data)”,这是一个字符串,结果如下:Email=test%40pmail.com&Password=my%20passwd

也就是说,后端中的request.body是一个空对象{},在这个实现中永远不会得到这些值

使用Postman客户端工作的原因是(我认为)您在请求的主体中传递了一个JSON对象,但在React应用程序中传递了一个字符串


检查“qs.stringify”方法是否是您真正想要用于实现的方法。

您是否在后端实现了json解析器?如果没有,您需要在后端实现json解析器来接收包含json正文的请求。

Frontend React.js:

import axios from 'axios';
import server from "../../../config/config";
import qs from 'qs';


 restlogin(email,password){ 



const data = { 'Email': email,'Password': password };
 const options = {
    method: 'POST',
    headers: { 'content-type': 'application/json' },
    data: JSON.stringify(data),
    url: "http://172.16.53.248:8989/login"
}
  axios(options);


 }

后端节点.js

  app.post("/login", async function(request, response) {

var ret = false;
try {
    var data = JSON.parse(request.body);
    console.log("\n Email: "+data.Email+"\n Password: "+data.Password);

    ret = await UserController.Login(
        data.Email,
        data.Password
    );
} catch (err) {
    ManageError.SendError("Errore in login: " + err);
    ret = false;
}
response.setHeader("Content-Type", "application/json");
response.send(
    JSON.stringify({
        return: ret
    })
);
});

控制台日志显示了什么?@YoandryCollazo错误:非法参数未定义后端中的哪一行抛出该错误?此:ret=wait UserController.Login(data.Email,data.Password);你能打印“数据”吗?