Thanks to visit codestin.com
Credit goes to github.com

Skip to content

fix(buildURL): preserve encoded colon (%3A) for JSON-stringified params#7290

Open
Amaan-pathan wants to merge 1 commit intoaxios:v1.xfrom
Amaan-pathan:fix/params-encoding
Open

fix(buildURL): preserve encoded colon (%3A) for JSON-stringified params#7290
Amaan-pathan wants to merge 1 commit intoaxios:v1.xfrom
Amaan-pathan:fix/params-encoding

Conversation

@Amaan-pathan
Copy link

Description

This PR fixes an issue where colons inside JSON-stringified params were not being consistently encoded. In some environments Axios was converting %3A back to :, while in others it preserved the encoding. This led to unpredictable behavior when APIs expected strictly encoded JSON in query parameters.

To address this, I added a small helper (isJSONLike) that detects when a param value looks like JSON (e.g., "{...}" or "[...]"). If the value is JSON-formatted, the colon remains encoded as %3A. For all non-JSON values, Axios continues to follow its existing encoding rules, so backward compatibility is preserved.

What’s Changed

  • Added isJSONLike check inside encode()

  • Ensured JSON-stringified params keep %3A instead of decoding to :

  • Updated buildURL tests to cover:

  • JSON-like params

  • nested objects

  • arrays, dates, and special characters

  • custom serializer functions

  • URLs that already contain a query string

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.

2 participants