copy headers instead of referencing them so they don't unexpectedly get overwritten #736
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently
common.setupOutgoing
uses a reference to the original request headers, which causesConnection
to be overwritten in some cases, andHost
to be overwritten whenchangeOrigin
is set totrue
. If you use theproxyReq
to look at the original request and the proxy request you will find that those headers have been modified on the original request object.I modified one test case that set the request headers to a string because using
utils._extend
on a string doesn't work. As far as I knowreq.headers
will always be an object so I think what I did is fine but if there's a reason that was a string, I'll fix it so it checks the type.