我正在一个端口3000中运行我的React js Web应用程序。 对于节点服务器,我正在使用4000。
在调用获取方法时,它会返回“ 400错误请求”。 错误 POST http://localhost:4006/auth/admin 400(错误请求)
反应代码npm在3000端口启动
fetch('http://localhost:4000/auth/admin',
{ mode: 'no-cors',
method: "POST",
body: JSON.stringify({
username:"admin",
password:"1234"
}),
headers: {
"Content-Type": "application/json",
'Accept': 'application/json, text/plain, */*',
credentials: "omit", //
// "Content-Type": "application/x-www-form-urlencoded",
},
})
.then((response) => console.log(response));
node code running in 4000 port
const passport = require("passport");
const route = require("../constants/routeStrings");
const keys = require("../config/keys");
const processStatus = require("../constants/processStatus");
const success = {
status: processStatus.SUCCESS
};
const failute = {
status: processStatus.FAILURE
};
module.exports = app => {
app.post('/auth/admin', passport.authenticate("local"), (req, res) => {
res.send(success);
});
};
答案 0 :(得分:0)
因为护照无法读取您的参数,所以护照会提出400条回复。您需要告诉“节点”应用在实际路由之前对其进行解析。
// Import body parser, you should read about this on their git to understand it fully
const parser = require('body-parser');
const urlencodedParser = parser.urlencoded({extended : false});
// before your routes
app.use(parser .json());
app.use(urlencodedParser) // This will parse your body and make it available for your routes to use
然后打其他电话。
此外,请确保您要发送用户名和密码密钥,否则请阅读有关如何将这些密钥名称更改为其他名称的文档
答案 1 :(得分:0)
请勿拉紧身体。从
更改 body: JSON.stringify({
username:"admin",
password:"1234"
}),
到
body: {
username:"admin",
password:"1234"
},
答案 2 :(得分:0)
我忍受了很长时间,但我克服了它编写那些代码块的过程。我成功地将请求发送到服务器的控制器,希望是你的:尝试一下。
首先定义一个异步函数来发出POST请求:
async function _postData(url = '', data = {}) {
const response = await fetch(url, {
method: 'POST',
mode: 'cors',
cache: 'no-cache',
credentials: 'same-origin',
redirect: 'follow',
referrerPolicy: 'no-referrer',
headers: {
"Content-type": "application/json; charset=UTF-8"
},
body: JSON.stringify(data)
});
return response.json();
}
现在创建请求 JSON 负载:
let requestPayload = {
propertyName1: 'property value1',
propertyName2: 'property value23',
propertyName3: 'property value',
So on
}
注意:请求模型将是您想要的模型,即您实际发送的请求负载。
现在使用此负载(包括您的端点 URL)发出请求:
_postData('http://servername/example', requestPayload )
.then(json => {
console.log(json) // Handle success
})
.catch(err => {
console.log(err) // Handle errors
});
100% 在我的项目上工作。