Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixing remove Content-Type when data is instance of FormData #3785

Merged
merged 1 commit into from Apr 1, 2022

Conversation

norbertsongin
Copy link
Contributor

Fixes #1603

Similar motivation as in #3289
Seems more logical to give freedom to the developer

@jasonsaayman jasonsaayman self-requested a review May 7, 2021 09:36
@jasonsaayman jasonsaayman self-assigned this May 7, 2021
@jasonsaayman
Copy link
Member

Hi @norbertsongin please can you add a test to this that checks it works and does not break compatability

@iam-Akshat
Copy link

Is this open, I can't see the pull request

@JoniVR
Copy link

JoniVR commented Sep 10, 2021

I agree with this Pull Request, I just spent 2 hours trying to figure out why I was getting a 415 on React Native. Similar issues have been reported, the assumption that the browser will set it anyways is not always correct (see React Native for example). I was looking to open this exact PR myself before finding this one.

Furthermore, "magic" behind the scenes behavior like this is really frustrating, because it makes it seem like a bug. I'm just trying to explicitly set a "Content-Type" to my request, and it's getting stripped for some reason, queue 2 hours of digging through the Issues and Source code :/

I'd love to see this merged. It'd be some great redemption 2 hours of my life I'll never get back.

@jasonsaayman How would one go about writing tests for this specific issue? It's just removing some code? Though it should possibly be a breaking change unfortunately as people are now assuming that it's automatically being removed, which might break existing uses, not sure?.

@jasonsaayman jasonsaayman merged commit 9b8e004 into axios:master Apr 1, 2022
DigitalBrainJS added a commit to DigitalBrainJS/axios that referenced this pull request Apr 26, 2022
jasonsaayman added a commit that referenced this pull request Apr 27, 2022
)

* Fixed posting FormData in browser environment by reverting #3785;

* Added ability to keep `Content-Type` header in non-standard browser environments;

* Added browser test of FormData posting using external HTTP service (https://httpbin.org/post);

Co-authored-by: Jay <jasonsaayman@gmail.com>
ksibisamir added a commit to SaTT-Wallet/Backend that referenced this pull request May 26, 2023
<h3>Snyk has created this PR to upgrade axios from 0.26.1 to
0.27.2.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.
<hr/>

- The recommended version is **3 versions** ahead of your current
version.
- The recommended version was released **a year ago**, on 2022-04-27.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>axios</b></summary>
    <ul>
      <li>
<b>0.27.2</b> - <a
href="https://snyk.io/redirect/github/axios/axios/releases/tag/v0.27.2">2022-04-27</a></br><p>Fixes
and Functionality:</p>
<ul>
<li>Fixed FormData posting in browser environment by reverting <a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="878655062" data-permission-text="Title is private"
data-url="axios/axios#3785"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/3785/hovercard"
href="https://snyk.io/redirect/github/axios/axios/pull/3785">#3785</a>
(<a href="https://snyk.io/redirect/github/axios/axios/pull/4640"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4640/hovercard">#4640</a>)</li>
<li>Enhanced protocol parsing implementation (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4639"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4639/hovercard">#4639</a>)</li>
<li>Fixed bundle size</li>
</ul>
      </li>
      <li>
<b>0.27.1</b> - <a
href="https://snyk.io/redirect/github/axios/axios/releases/tag/v0.27.1">2022-04-26</a></br><h3>Fixes
and Functionality:</h3>
<ul>
<li>Removed import of url module in browser build due to huge size
overhead and builds being broken (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4594"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4594/hovercard">#4594</a>)</li>
<li>Bumped follow-redirects to ^1.14.9 (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4615"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4615/hovercard">#4615</a>)</li>
</ul>
      </li>
      <li>
<b>0.27.0</b> - <a
href="https://snyk.io/redirect/github/axios/axios/releases/tag/v0.27.0">2022-04-25</a></br><h3>Breaking
changes:</h3>
<ul>
<li>New toFormData helper function that allows the implementor to pass
an object and allow axios to convert it to FormData (<a
href="https://snyk.io/redirect/github/axios/axios/pull/3757"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/3757/hovercard">#3757</a>)</li>
<li>Removed functionality that removed the the <code>Content-Type</code>
request header when passing FormData (<a
href="https://snyk.io/redirect/github/axios/axios/pull/3785"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/3785/hovercard">#3785</a>)</li>
<li><strong>(*)</strong> Refactored error handling implementing
AxiosError as a constructor, this is a large change to error handling on
the whole (<a
href="https://snyk.io/redirect/github/axios/axios/pull/3645"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/3645/hovercard">#3645</a>)</li>
<li>Separated responsibility for FormData instantiation between
<code>transformRequest</code> and <code>toFormData</code> (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4470"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4470/hovercard">#4470</a>)</li>
<li><strong>(*)</strong> Improved and fixed multiple issues with
FormData support (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4448"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4448/hovercard">#4448</a>)</li>
</ul>
<h3>QOL and DevX improvements:</h3>
<ul>
<li>Added a multipart/form-data testing playground allowing contributors
to debug changes easily (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4465"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4465/hovercard">#4465</a>)</li>
</ul>
<h3>Fixes and Functionality:</h3>
<ul>
<li>Refactored project file structure to avoid circular imports (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4516"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4516/hovercard">#4515</a>) &amp;
(<a href="https://snyk.io/redirect/github/axios/axios/pull/4516"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4516/hovercard">#4516</a>)</li>
<li>Bumped follow-redirects to ^1.14.9 (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4562"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4562/hovercard">#4562</a>)</li>
</ul>
<h3>Internal and Tests:</h3>
<ul>
<li>Updated dev dependencies to latest version</li>
</ul>
<h3>Documentation:</h3>
<ul>
<li>Fixing incorrect link in changelog (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4551"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4551/hovercard">#4551</a>)</li>
</ul>
<h3>Notes:</h3>
<ul>
<li><strong>(*)</strong> Please read these pull requests before
updating, these changes are very impactful and far reaching.</li>
</ul>
      </li>
      <li>
<b>0.26.1</b> - <a
href="https://snyk.io/redirect/github/axios/axios/releases/tag/v0.26.1">2022-03-09</a></br><h3>Fixes
and Functionality:</h3>
<ul>
<li>Refactored project file structure to avoid circular imports (<a
href="https://snyk.io/redirect/github/axios/axios/pull/4220"
data-hovercard-type="pull_request"
data-hovercard-url="/axios/axios/pull/4220/hovercard">#4220</a>)</li>
</ul>
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/axios/axios/releases">axios GitHub
release notes</a>
  </details>
</details>
<hr/>

**Note:** *You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs.*

For more information: <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIyMDVhZWJmMC01NTE3LTQ2ZjQtODg0Zi0xYjEwZjdiOWU3YjgiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjIwNWFlYmYwLTU1MTctNDZmNC04ODRmLTFiMTBmN2I5ZTdiOCJ9fQ=="
width="0" height="0"/>

🧐 [View latest project
report](https://app.snyk.io/org/satt/project/b89486be-ad07-4d6c-a51a-2fa8a25baa00?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/satt/project/b89486be-ad07-4d6c-a51a-2fa8a25baa00/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/satt/project/b89486be-ad07-4d6c-a51a-2fa8a25baa00/settings/integration?pkg&#x3D;axios&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"205aebf0-5517-46f4-884f-1b10f7b9e7b8","prPublicId":"205aebf0-5517-46f4-884f-1b10f7b9e7b8","dependencies":[{"name":"axios","from":"0.26.1","to":"0.27.2"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/satt/project/b89486be-ad07-4d6c-a51a-2fa8a25baa00?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"b89486be-ad07-4d6c-a51a-2fa8a25baa00","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":3,"publishedDate":"2022-04-27T10:00:58.685Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can not change Contant-Type when data is FormData
4 participants