axios - Axios 是如何解析响应数据中的 XML 的?

标签 axios

我试图弄清楚事情是如何发生的:在 node.js 上使用 Axios 时,返回 XML 正文的 HTTP GET 出现在已经解析为 JS 对象的响应数据属性中。我对此感到惊讶(并期望取回我需要通过 XML 解析器获取 JS 对象的文本)。我在 Axios 文档中找不到任何关于此功能的提及,也找不到在 Axios 源代码中对 XML 解析器的引用。

这是 Axios 代码的基本示例:

      let url = `${PB_PID}${values.source}`;
      let result = await http.get(url, {
        timeout: 4000,
        responseType: 'text',
        maxContentLength: 65536
      });
      let data = result.data;  // data is a JS object, parsed from the received XML response

我希望 data 包含文本。它自动解析 XML 不一定是坏事,但我想了解为什么/如何发生这种情况,原因有很多,包括这可能并不总是期望的结果。

最佳答案

Axios 中没有“自动 XML 解析”之类的东西,所以唯一的解释是您的服务器(您从中请求数据)可以处理多种响应格式(响应格式协商)并且因为您没有发送 Accept: ' application/xml' header ,默认(取决于服务器实现)是 application/json 确实由 Axios 使用 JSON.parse() 方法自动解析

您可以通过console.log(result.headers)检查服务器返回的响应类型

关于axios - Axios 是如何解析响应数据中的 XML 的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64053703/

相关文章:

javascript - 合并来自链式 axios 请求的两个数组

javascript - 为什么用成功 promise 调用 catch ?

javascript - Quasar + Vue + SSR - 如何隐藏敏感数据,例如 API key

vuejs2 - 在 vuex 商店中通过 axios 发布后进行重定向的正确方法

javascript - HTTPInterceptor 没有拦截来自 Angular 中第 3 方小部件的 http 请求

javascript - 如何将文件图像转换为 Byte[] ReactJS?

reactjs - 带有 fetch api 的 React hook

javascript - VueJs Axios 和 Typescript

node.js - vuejs 2 axios 放置,删除

laravel-5 - 类型错误 : Cannot set property 'posts' of undefined - Vuejs