Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Axios与React js的问题(每次运行get/put请求时都会出错)_Javascript_Reactjs_Axios - Fatal编程技术网

Javascript Axios与React js的问题(每次运行get/put请求时都会出错)

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)

我在我的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)
应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();
  }, []);