[axios]类型错误:无法分配给只读属性“key”

2024-05-15 629 views
9

我们遇到了以下代码的间歇性错误

      axios.get(service)
        .then((response) => {
            response.data.key = key; // Blows up here
            return resolve();
        .catch((err) => {
          return reject(err);
        });

出现 ETIMEOUT 错误后,我们得到了

TypeError: Cannot assign to read only property 'key' of ��Z�r�6~�{cY�d���A�?7J�������Ep�e�U�y�<�v� ؖ@I&�'�?_��n4��u��Z��������e&FW���U�p�egl)x�
��S�Q���0�QY��G<�G�����u$x0S1/���~�W"�Kw�%Y�
y�_��4��>�_~���Z�7���N؏2_'j�����.��'r�H�\2�r�Qe�D������|��GW��P�<_FW����L=�?�cg��B��<k5�a�r���Ձ���n��㴙vk� ���q�>y�
e�����K���o:�L[#X�c3�'�N�e��?���&�ul.�:f�}

我最好的猜测是,不是触发“catch”,而是使用压缩响应调用“then”。无论底层对象是什么,它都具有只读键属性,或者是不可变的。

我们收到过几次这样的超时,但之前没有遇到过 TypeError 问题。

axios版本:“0.7.0”

回答

0

每天都得到这个。也是在 404 后。错误不是被发送到“catch”,而是由“then”处理。对于 404s,响应参数是 404 页面。

2

您是否尝试过更新到最新版本(0.8.1)?

9

今天会尝试一下。

1

@cressie176 运气好吗?

3

抱歉 - 还没有时间测试。

1

0.9.0 现已上线。如果问题解决,将在几天后关闭。

6

否 - 仍然有相同的错误

3

奇怪的。您是在浏览器中还是在 Node 中运行它?

5

两者都是,但我们拥有的日志来自它在节点上运行时的日志。我尝试使用 nock 在独立脚本中进行复制,但失败了。将继续调查

3

好的,我将尝试调查节点适配器中发生的情况,看看我们是否可以深入了解它。

2

@cressie176 你还有这个问题吗?

6

我已经有一段时间没有在应用程序的这一部分上工作了,但是我们开始在其他部分中遇到不同的超时错误(如果我记得的话,在没有响应对象的情况下调用),因此我们切换了 Axios 另一个同构友好的库。对不起。