Javascript Axios与React js的问题(每次运行get/put请求时都会出错)
我在我的VSC编辑器中编写代码,并使用React js库和Axios作为我的API。 在这次任务中,我使用了一个功能组件和一个功能组件 Home.js 还将错误日志发送到控制台Javascript Axios与React js的问题(每次运行get/put请求时都会出错),javascript,reactjs,axios,Javascript,Reactjs,Axios,我在我的VSC编辑器中编写代码,并使用React js库和Axios作为我的API。 在这次任务中,我使用了一个功能组件和一个功能组件 Home.js 还将错误日志发送到控制台 Home.js:36 AXIOS错误:错误:网络错误 在createError(createError.js:17) 位于XMLHttpRequest.handleError(xhr.js:80) 在dispatchXhrRequest(xhr.js:166) 在新的承诺() 在xhrAdapter(xhr.js:16)
Home.js:36 AXIOS错误:错误:网络错误
在createError(createError.js:17)
位于XMLHttpRequest.handleError(xhr.js:80)
在dispatchXhrRequest(xhr.js:166)
在新的承诺()
在xhrAdapter(xhr.js:16)
应dispatchRequest(dispatchRequest.js:49)
我做错了什么?!
另一个简单的问题->为什么会将此错误日志打印到控制台两次?
做这件事的方式和原因?试试:
const reqFunc = async () => {
try {
const response = await axios.get(
"localhost:3010/accounts/mine",
reqBody,
config
);
console.log(response);
} catch (err) {
console.log(err);
}
};
您没有“等待”异步函数中的任何内容,因此在您的示例中,异步部分是冗余的
第一个错误是因为你的承诺没有完全解决 我不确定能否回答您的问题,但我有几点意见。 我正在更多地使用fetchapi,我的评论也在使用fetchapi,因此这里也可以对axios和fetch的相似性有所帮助。 这不是有效的JSON格式:
const reqBody
我想这样写:
const reqBody = {
"name":"Roee",
"idNumber":"132456789",
"idNumberConf":"132456789",
"personalNumber":"1234567",
"personalNumberConf":"1234567",
"hogerNumber":"12345678",
"hogerNumberConf":"12345678",
"phoneNumber":"0548336350",
"birthDate":"06/12/1990",
"password":"1132456",
"passwordConf":"1132456"}
HTTP Get请求不应包含请求正文,或者它是一个打字错误,您的意思是POST请求:
axios.post('localhost:3010/accounts/mine', reqBody, config)
我想说,对于内容类型,可以是application/json:
const config = {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};
本例中的问题是,您正在render return语句中调用获取代码。在返回之前尝试调用函数。将调用包装在
useffect
挂钩中,然后尝试以下操作:
const [data, updateData] = useState(undefined);
useEffect(() => {
async function fetchData() {
const response = await axios.get('localhost:3010/accounts/mine', reqBody, config);
const json = await response.json();
updateData(json);
}
fetchData();
}, []);
第一个日志错误:如果不返回React组件,请不要在
render
方法{reqFunc()}
中执行此操作。您可以改用React生命周期。第二,您使用的axios.get(url[,config])
错误。如果要发送数据
,请改用axios.post()
。问题首先是在render中调用异步代码。您应该只在其中放置html元素。你的建议会解决问题,因为它会返回未定义的结果,而不是承诺,但他会理解根本原因。而你的解决方案的问题是你实际上没有提供一个。
const reqBody = {
"name":"Roee",
"idNumber":"132456789",
"idNumberConf":"132456789",
"personalNumber":"1234567",
"personalNumberConf":"1234567",
"hogerNumber":"12345678",
"hogerNumberConf":"12345678",
"phoneNumber":"0548336350",
"birthDate":"06/12/1990",
"password":"1132456",
"passwordConf":"1132456"}
axios.post('localhost:3010/accounts/mine', reqBody, config)
const config = {
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};
const [data, updateData] = useState(undefined);
useEffect(() => {
async function fetchData() {
const response = await axios.get('localhost:3010/accounts/mine', reqBody, config);
const json = await response.json();
updateData(json);
}
fetchData();
}, []);