Fix 'TypeError [ERR_UNESCAPED_CHARACTERS]: Request path contains unescaped characters' #42
+33
−3
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.
It appears most browsers (tested in Firefox, Safari and Chromium[Chrome/Brave]) will url-encode paths automatically if they are not already encoded.
xhr2
doesn't match that behaviour when run in node: using an unencoded URL will result inTypeError [ERR_UNESCAPED_CHARACTERS]
.Just adding the encoding line however causes a new issue; already encoded URLs end up being double-encoded, changing the URL incorrectly.
Using
native-url
instead ofurl
fixes this, as well as removing the dependency on the deprecated Legacy URL API.It would have of course been better to refactor
xhr2
to not use the deprecated API, however this does not appear to be trivial looking at thenative-url
code – at least, I am not able to do that work presently.I'm not necessarily expecting this to get merged (I think the fact that
xhr2
has no dependencies is pretty nice!), but I figured it might be useful for anyone else that runs into theERR_UNESCAPED_CHARACTERS
issue, or for the project maintainers as they're considering how to deal with the API deprecation.This probably resolves the issue referenced in #35 .