node.js - 无法在客户端上获取来自节点快速服务器的 POST 调用的响应正文
问题描述
我有一个客户端对我托管在 heroku 上的快速服务器进行 Post 调用。
当我进行简单的 POST 调用时,我在客户端上看不到任何响应。然而,我在网络上看到了正确的响应,我只是无法在我想要的地方得到它,即我的客户端 js。
客户端:
fetch('/getLongToken', {
method:'post',
headers: {
'Content-Type':'text/plain'
},
body: JSON.stringify(orgReqBody)
}).then(resp => {
if(resp == 'NO_LONG_TOKEN'){
console.log('no long token ');
} else if (resp.body == 'NO_TOKEN'){
console.log('NO TOKEN');
}
}).catch(err => {
console.log(`the logged error is ${err}`);
})
特快路线:
app.post('/getLongToken/', (req, res)=> {
let orgId = orgToTokenMap.get(JSON.parse(req).orgId);
if(orgId == undefined){
res.send({msg:"NO_LONG_TOKEN"});
} else {
//some other processing//
}
})
无论我尝试了什么,即使是一个简单的
res.send('TEST');
我无法在我的客户中得到任何回应。甚至尝试过文本,没有运气的json。
我怀疑是 cors 问题,甚至尝试设置 cors 和 headers 但没有效果。
我一定是在做一些非常根本的错误。你能帮我弄清楚我错过了什么吗?
任何帮助表示赞赏!
解决方案
您正在发送一个对象作为响应,因此您必须在客户端上检查该对象。您还必须知道根据您使用的库(即 Axios 或本机请求)的响应结构如何。假设您的响应对象在您身上,resp
您可以:
if (resp.msg === 'NO_LONG_TOKEN') {
console.log('no long token ');
} else if (resp.msg === 'NO_TOKEN') {
console.log('NO TOKEN');
}
推荐阅读
- css - pagespeed 模块和 css
- angular - 角度 7 中的复杂路线
- notifications - App Store 服务器通知中的开发人员有效负载(外部数据)
- cluster-analysis - 在聚类算法之前进行预处理的最佳实践是什么?
- c# - 从文本块 wpf 中选择项目组合框
- c# - 将 Viewmodel 绑定到控件 WPF 的 contextMenu 时出现问题
- python - 在时间戳中的日期之间分组并过滤检查另一列
- python - 使用 pandas 将两个不同的数据帧转换为一个 json 文件
- c++ - 通过 TCS 和 TES 传递数据
- typescript - 如何让 Visual Studio Code 真正显示所有 TypeScript 类型错误?