尝试使用axios发送帖子请求时,我遇到了网络错误。
错误:node_modules\axios\lib\core\createError. js:15:17 in createError atnode_modules\axios\lib\Adapters\xhr.js:81:22 in handleError atnode_modules\event-target-shim\dist\event-target-shim.js:818:20 in EventTarget.在node_modules\react-native\Library\Network\XMLHttpRequest.js:600:10 in setReadyState atnode_modules\react-native\Library\Network\XMLHttpRequest.js:395:6 in__didCompleteResponseatnode_modules\react-native\Library\供应商\emitter\EventEmitter.js:189:10 in emit atnode_modules\react-native\BatchedBridge\MessageQueue.js:416:4 in__callFunction\react-native\Library\BatchedBridge\MessageQueue.js:109:6 in__guard
代码:
const [state, setTest] = useState({data: null});
const[isLoading, setLoading] = useState(true);
const {testowy} = require("./clientRequests/Creq_lib");
// testowy().then(data => setState({data: data})).catch(error => {console.log(error)}); This one doesn't work
useEffect(() => {
// axios.post("http://192.168.0.4:8080/testowy").then(res => {setTest({data: res.data}); setLoading(false);}); This works ok
// testowy().then(res => {setTest({data: res}); setLoading(false);});
testowy().then(res => {setTest({data: res}); setLoading(false);}); // These two don't work
}, []);
当直接使用axios.post()时,一切都很好,但是在我尝试导入一个函数后,它应该做完全相同的事情,我得到这个网络错误。
具有上述功能的库:
const {Creq_testowy} = require("./Creq_testowy");
module.exports={
testowy: Creq_testowy,
}
功能本身:
const axios = require("axios");
function Creq_testowy() {
return new Promise((resolve, reject) => {
axios.post(`http://192.168.0.4:8080/testowy`)
.then(res => {
console.log(res.data);
resolve(res.data);
})
.catch(error => {console.log(error)})
});
}
module.exports = {
Creq_testowy,
}
为什么直接使用axios.post()时一切正常?为什么我在使用导入的函数时收到此错误?
当axios已经返回一个时,为什么要创建一个Promise?你能试试这个吗?
async function Creq_testowy() {
const res = await axios.post(`http://192.168.0.4:8080/testowy`)
return res.data;
}
或这个
async function Creq_testowy() {
try {
const res = await axios.post(`http://192.168.0.4:8080/testowy`)
return res.data;
} catch(err) {
console.log(err);
}
}
你在reat native中运行此代码吗?博览会?网络?
你也传递你隐藏的帖子参数吗?这可能是bug的根本原因。
您可以尝试用以下内容替换您的代码吗:
const axios = require("axios");
async function Creq_testowy() {
const data = await axios.post(`http://192.168.0.4:8080/testowy`)
return data.data
}
module.exports = {
Creq_testowy,
}