调用Mangopay POST卡注册接口返回200却无法通过response.json()获取数据
问题根因
你的代码中断是因为返回的响应内容不是标准JSON格式,response.json()解析时会抛出未捕获的语法错误,直接终止代码运行,所以后续的console.log不会执行。从你提供的响应头也能看到,接口返回的content-type是text/plain,本身就不是JSON类型。
解决方法
- 改用
response.text()方法读取纯文本格式的响应内容 - 对拿到的文本做自定义解析,提取你需要的
data字段值 - 添加
try/catch块捕获处理过程中可能的异常,避免代码直接中断
参考代码如下:
try { // 读取纯文本响应 const respText = await postCardResponse.text(); // 用正则提取data=xxx的内容,兼容等号前后有空格的情况 const dataMatch = respText.match(/data\s*=\s*(.+)/); if (dataMatch) { const dataValue = dataMatch[1].trim(); // 后续处理dataValue的逻辑 console.log('提取到的data值:', dataValue); } console.log('hello'); } catch (err) { console.error('处理响应出错:', err); }
内容的提问来源于stack exchange,提问作者Jcalicod
相关产品推荐
相关产品推荐

