我想做的是通过正文发送文件名从服务器获取文件,然后从服务器获取请求的文件
我正在从我在Postman中测试的服务器获取文件作为响应
- 我想做的是获取服务器响应的文件,然后使用react-js将其显示在浏览器中 *
这是从服务器获取文件所做操作
前端代码
import { useEffect, useState } from "react";
const CardArticle = ({ cardData:cardComponent }) => {
const [Data, setdata] = useState(null);
useEffect(() => {
fetch("http://localhost:8000/article", {
method: "post",
headers: { "content-Type": "application/json" },
body: JSON.stringify({fileName: "cardArticle.html"}),
}).then((res) => res.json())
.then((data) => setdata(data))
.catch(console.log("not found"))});
if (Data === null) return;
return (
<div>{Data}<div>hello it's working</div></div>
);
};
export default CardArticle;
它给了我错误:未捕获(在承诺中)语法错误:意外的标记“〈”,“〈!DOCTYPE..."不是有效的JSON
我不知道该怎么做,所以我尝试了一些东西,但不知道它将如何工作
后端代码
app.post("/article", (req, res) => {
try {
const { fileName } = req.body;
if (fileName === undefined) {
return res.status(404).json("file not found");
}
res.sendFile(path.join(__dirname, `/${fileName}`));
} catch (err) {
res.json("Something went wrong!");
}
});
1条答案
按热度按时间dsekswqp1#
我认为你的内容类型是错误的,因为文件不是json,你不能转换它们。一种方法是使用
multipart/form-data
内容类型,然后用javascriptformData
转换它