alovajs / alova

Workflow-Streamlined next-generation request tools. Extremely streamline API integration workflow, just one step
https://alova.js.org
MIT License
2.97k stars 109 forks source link

[Bug]: 如果请求响应为纯文本, alova 将获取不到data #501

Closed 799189288 closed 3 months ago

799189288 commented 3 months ago

这是否是一个 Bug?

这个问题是否已经存在?

Alova 版本

3.0.7

前端框架

Vue

问题描述

image image

如题

期望的表现

No response

复现链接

No response

复现步骤

1.随便发送一个请求 2.请求响应为文本

系统信息

System:
    OS: Windows 11 10.0.26257
    CPU: (16) x64 AMD Ryzen 9 5900HX with Radeon Graphics
    Memory: 16.69 GB / 31.40 GB
  Binaries:
    Node: 21.7.1 - ~\AppData\Local\fnm_multishells\31696_1723532711063\node.EXE
    Yarn: 1.22.22 - ~\AppData\Local\fnm_multishells\31696_1723532711063\yarn.CMD
    npm: 10.8.2 - ~\AppData\Local\fnm_multishells\31696_1723532711063\npm.CMD
  Browsers:
    Edge: Chromium (127.0.2651.61)
    Internet Explorer: 11.0.26257.5000
  npmPackages:
    alova: ^3.0.7 => 3.0.7
    vue: ^3.4.21 => 3.4.27

补充说明

No response

MeetinaXD commented 3 months ago

请贴出发送请求以及创建 alova 示例的代码片段

JOU-amjs commented 3 months ago

这个应该是用的xhr适配器,responseType默认为了json,是这种情况的话请设置responseType=text

ocweai commented 3 months ago

这个应该是用的xhr适配器,responseType默认为了json,是这种情况的话请设置responseType=text

xhr responseType 默认值是 text 按理来说应该输入输出保持一致吧

799189288 commented 3 months ago

这个应该是用的xhr适配器,responseType默认为了json,是这种情况的话请设置responseType=text

xhr responseType 默认值是 text 按理来说应该输入输出保持一致吧

我是这么反馈的,改不改看作者了

JOU-amjs commented 3 months ago

xhr适配器默认responseType为json,是因为在大部分情况下都是json数据交换的,实现在大部分场景下最简单的配置,需要text的可以在对应的接口config中设置,全局需要的话也可以在beforeRequest中设置

799189288 commented 3 months ago

xhr适配器默认responseType为json,是因为在大部分情况下都是json数据交换的,实现在大部分场景下最简单的配置,需要text的可以在对应的接口config中设置,全局需要的话也可以在beforeRequest中设置

我觉得这个根本的问题是你只解析了json, 其他的就不管了, 不设置甚至连个错误提示都没有, data一律返回null,使用者一头雾水。

MeetinaXD commented 3 months ago

好吧,我来解决这个问题