axios.post 响应已获得数据,但response.data为空

of1yzvn4  于 2022-11-05  发布在  iOS
关注(0)|答案(2)|浏览(687)

已更新

在使用console.log之后,我可以看到和检索response.dataXML结构中的www.example.com。但是当xml2json转换时,它返回给我空对象。

const headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
};

const response = await axios.post(postURL, urlSearchParams, { timeout: constant.axiosTimeout, headers: headers });

// logger.custom.info('responseXML:: ', response); //Show list of things
// logger.custom.info('responseXML_DATA:: ', response.data); //Empty

console.log('responseXML:: ', response.data); //SUCCESS

const options = {
    compact: true,
    trim: true,
    ignoreDeclaration: true,
    ignoreInstruction: true,
    ignoreAttributes: true,
    ignoreComment: true,
    ignoreCdata: true,
    ignoreDoctype: true,
    textFn: utils.xml2jsonRemoveJsonTextAttribute
  };

// JSON.parse(convert.xml2json(response.data, options));

console.log('xml2json:: ', convert.xml2json(response.data, options));
console.log('JSONParse:: ', JSON.parse(convert.xml2json(response.data, options)));

第一次
任何帮助都是感激不尽的。

zd287kbt

zd287kbt1#

使用await

  • 试试这个:*
const headers = {
    'Content-Type': 'application/x-www-form-urlencoded',
};

const response = await axios.post(postURL, urlSearchParams, { timeout: constant.axiosTimeout, headers: headers });

console.log('responseXML:: ', await response); //Show list of things
console.log('responseXML_DATA:: ', await response.data); //Empty
68bkxrlz

68bkxrlz2#

我通过使用console.log而不是logger解决了日志记录问题。关于xml2json解析问题,是由于我将ignoreAttributes设置为TRUE。
经过反复尝试后,我注意到Attributes引用了这个标记

由于我从API得到的响应是

<?xml version"1.0" encoding="utf-8"?>
<result info="xxxx" msg="yyyy" />

因此在xml2json转换过程中,它将忽略标记并返回空值。
希望这能澄清。谢谢。

相关问题