javascript - 尝试将数据从客户端发送到服务器时 POST http://localhost:3000/data 400(错误请求)
问题描述
嘿伙计们,所以我在将数据从客户端发送到服务器端时遇到了一些问题。基本上我有一个功能,点击时将名为 categorySearch 的变量设置为字符串,例如 categorySearch = "pork" 并将其发送到服务器;但由于某种原因,我不断收到标题中提到的错误。这是一些代码:客户端
function getRecipes(category){
const categorySearch = category.alt;
const options = {
method: 'POST',
headers: {
'Content-type': 'application/json'
},
body: categorySearch
}
const response = fetch('/data', options);
console.log(response);
}
服务器端
const express = require('express');
const app = express();
const fetch = require('node-fetch');
require('dotenv').config();
const API_KEY = process.env.API_KEY;
const port = process.env.PORT || 3000;
app.listen(port, () => console.log('listening at 3000'));
app.use(express.static('public'));
app.use(express.json({ limit: "1mb"}));
app.post('/data', (request, repsonse) => {
console.log(request.body);
})
不知道我做错了什么,我在后端工作不多,所以也没有太多知识,非常感谢任何帮助:)
我的最终目标是能够将用户输入或在这种情况下点击的数据发送到服务器,然后在服务器端对搜索引擎进行 api 调用,获取我需要的数据,发送它返回客户端-服务器并将其显示在页面上。
解决方案
原因:-
400 Bad Request Error 是一个 HTTP 响应状态码,表示由于语法无效,服务器无法处理客户端发送的请求
根据您的代码,您从客户端以 json 格式发送数据并在服务器中以纯文本形式检索该数据,因此不要将其作为application/json
使用发送text/plain
或删除该标头部分以使其正常工作,请查看以下附加代码。
客户端:-
function getRecipes(category){
const categorySearch = category.alt;
const options = {
method: 'POST',
headers: {
'Content-type': 'text/plain', // or remove this headers section
},
bodydata: categorySearch
}
const response = fetch('/data', options);
console.log(response);
}
服务器端:
app.post('/data', (request, repsonse) => {
console.log(request.body.bodydata);
})
希望这会让您对错误有所了解。在此处阅读有关400 错误的更多信息
推荐阅读
- java - 如何使用 java 从 Oracle 检索 Long
- c - 与 pl2303 的串行通信不可靠
- vb.net - 旧版本 vb 中使用的 adocom 问题
- javascript - "RequestAnimationFrame()" FPS = 显示刷新率?这会影响性能吗?
- django - 异常值:NOT NULL 约束失败:auth_user.username
- css - 打印页眉和页脚的媒体查询
- html - 如何在兄弟 div 留下的剩余空间中居中 div
- c++ - 谷歌 C++ 风格指南包括订单
- javascript - 关于 async/await 与 Promises 和事件循环的性能问题
- reactjs - ReactJs Material UI 随机问题