[英]i want to fetch file from server and then display in browser using react js(file is coming from server as response)
**WHAT I WANT TO DO IS FETCH A FILE FROM SERVER BY SENDING FILE NAME THROUGH BODY AND THEN GET ASKED FILE FROM SERVER ** **我想做的是通过正文发送文件名从服务器获取文件,然后从服务器获取文件 **
I AM GETTING FILE IN RESPONSE FROM SERVER I TESTED IN POSTMAN我正在从我在 POSTMAN 中测试的服务器获取响应文件
WHAT I WANT TO DO IS FETCH THE FILE RESPONDED BY SERVER AND THEN DISPLAY IT IN BROWSER using react-js我想做的是获取服务器响应的文件,然后使用 react-js 在浏览器中显示它
THIS IS WHAT I AM DOING TO FETCH FILE FROM SERVER这就是我从服务器获取文件所做的
frontend code前端代码
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;
IT GIVES ME ERROR: Uncaught (in promise) SyntaxError: Unexpected token '<', "<.DOCTYPE "... is not valid JSON它给了我错误:未捕获(承诺)语法错误:意外的令牌“<”,“<.DOCTYPE”...无效 JSON
I DON'T KNOW HOW TO DO IT SO I TRIED SOMETHING AND CAN'T FIGURE IT OUT HOW IT WILL WORK我不知道该怎么做,所以我尝试了一些东西,但无法弄清楚它是如何工作的
Backend code后端代码
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!");
}
});
i think your content-type is wrong because files are not json and you can't convert them.我认为你的内容类型是错误的,因为文件不是 json,你不能转换它们。 one way is to use
multipart/form-data
content type and then convert it with javascript formData
一种方法是使用
multipart/form-data
内容类型,然后将其转换为 javascript formData
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.