大佬教程收集整理的这篇文章主要介绍了Axios 和 App 对外部 api 的 GET/POST 请求,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 axios 和 nodeJs/express 的新手。 Axios 调用是从 React 组件文件本身进行的,我决定将它们移动到一个名为“user.service.Js”的文件中以学习最佳实践。但是,它们并不像我期望的那样工作。以下是两种情况。
对于 GET 请求,这有效: user.service.Js:
class Userservice {
getDevices() {
return axios.get(process.env.REACT_APP_serviCE + "/userDevices",{
params: {
access_token: user.access_token,}
});
}
}
export default new Userservice();
server.Js:
app.get('/userDevices',(req,res) => {
console.log("grabbing user List of available devices");
axios.get(API_url + "/API/devices",{
headers:
{ 'Authorization': 'Bearer ' + req.query.access_token }
}
).then((responsE) => {
res.send({ devices: response.data });
}).catch((err) => {
console.log('Failed to grab user devices');
res.send('error');
});
});
但这(更改 user.service.Js 中的 getDevices 函数和 server.Js 中的标头)不会: user.service.Js:
getDevices() {
return axios.get(process.env.REACT_APP_serviCE + "/userDevices",{
headers: {
authorization: 'Bearer +' user.access_token,}
});
}
server.Js:
app.get('/userDevices',{
headers: req.headers.authorization
}
).then((responsE) => {
res.send({ devices: response.data });
}).catch((err) => {
console.log('Failed to grab user devices');
res.send('error');
});
});
对于 POST 请求,这根本不起作用: user.service.Js:
class Userservice()
{
addDevice(EID,deviCEType,configGroup,name,ip,tenantID) {
return axios.post(process.env.REACT_APP_serviCE + "/addDevice",{
params :{
EID: EID,deviCEType: deviCEType,configGroup: configGroup,name: name,ip: ip,tenantID: tenantID,access_token: user.access_token
}
});
}
}
export default new Userservice();
server.Js:
app.post('/addDevice',res) => {
console.log('Adding new device');
const device = [{
"EID": req.body.EID,"fIElds": {
"deviCEType": req.body.deviCEType,"configGroup": req.body.configGroup,"fIEld:name": req.body.name,"fIEld:ip": req.body.ip
}
}];
axios.post(API_url + "/API/devices",device,{
headers: {
"Authorization": 'Bearer ' + req.query.access_token,"X-Tenant-ID": req.body.tenantID,"Content-Type": "application/Json"
}
}).then((responsE) => {
res.send({ status: response.data.message });
}).catch((err) => {
console.log('Failed to add device',err);
res.send({ status: 'error' });
});
});
打印“req.body.tenantID”未定义。我在我的 React 组件中创建了这个类的一个新实例,其他函数也可以工作。我怀疑我对“req.body”的调用不正确,但我现在不知所措。提前致谢。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Axios 和 App 对外部 api 的 GET/POST 请求全部内容,希望文章能够帮你解决Axios 和 App 对外部 api 的 GET/POST 请求所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。