完美解决 Hapi 应用程序中 FormData 被复制的问题

阅读时长 3 分钟读完

问题描述

在 Hapi 应用程序中,我们经常使用 FormData 对象来向服务器发送表单数据,但是在使用 FormData 时会发现一个问题,即 FormData 对象会被复制:

-- -------------------- ---- -------
----- ---- - ----------------------
----- -------- - ---------------------
----- ----- - -----------------

----- ------ - --- -------------
    ----- -----
    ----- -----------
---

--------------
    ------- -------
    ----- ----------
    ------- -
        -------- -
            ------- ---------
            ------ -----
            ------ ---------------------
        -
    --
    -------- ----- --------- -- -- -
        ----- - ------- - - --------
        ----- - ---- - - --------

        ----- ---- - --- -----------
        ------------------- ------

        ----- -------- - ----- ---------------------------------------- ----- -
            -------- -----------------
        ---

        ------ --------------
    -
---

---------------

在上面的示例代码中,我们使用了 axios 库向另外一个服务器发送了一个 FormData 对象,在发送时我们需要通过 form.getHeaders() 获取请求头信息,但是我们会发现在发送请求之前,FormData 对象会被复制,而且复制后的数据会被串在一起,从而导致发送的请求头信息不正确。

解决方案

为了解决这个问题,我们需要修改如下代码:

在上面的代码中,我们通过 Object.assign() 方法将 form.getHeaders() 方法返回的请求头信息复制到了一个新的对象中,从而解决了 FormData 对象被复制的问题。

总结

本篇文章介绍了在 Hapi 应用程序中,使用 FormData 对象时会被复制的问题,以及解决这个问题的方法。通过这篇文章的学习,我们不仅能够更好地理解 FormData 对象的使用方法,还能够避免类似问题的出现。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647ab6d6968c7c53b0662537

纠错
反馈