از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
تابع () encodeURIcomponent جاوا اسکریپت
با حضور روزافزون فناوری وب، ما معمولاً نیاز بیشتری به رمزگذاری و رمزگشایی داده ها به روشی ایمن و استاندارد می بینیم. جاوا اسکریپت اینجاست encodeURIComponent()
تابع وارد تصویر می شود. این تابع یک مؤلفه URI (شناسه منبع یکسان) را با جایگزین کردن کاراکترهای خاص با دنبالههای فرار هگزا دسیمال متناظر رمزگذاری میکند.
let uri = "my test.asp؟name=ståle&car=saab";
let res = encodeURIComponent(uri);
console.log(res);
// Output: my%20test.asp%3Fname%3Dst%C3%A5le%26car%3Dsaab
در قطعه کد بالا، این را خواهید دید encodeURIComponent()
تابع در عمل، رشته URI داده شده را به یک نسخه کدگذاری شده تبدیل می کند.
توجه داشته باشید: یادت باشه، encodeURIComponent()
نه تنها کاراکترهایی را که در URL ها معتبر نیستند، بلکه برخی از کاراکترهایی که در URL دارای معنای خاصی هستند (مانند &
، =
، :
، /
، +
و غیره.). این همان چیزی است که این عملکرد را تهاجمی تر می کند encodeURI()
، که کاراکترهای با معنای خاصی را رمزگذاری نمی کند.
بیایید با یک مثال این را بهتر درک کنیم.
let uri = "/api/test؟name=John Doe&age=25";
let uriComponent = "John Doe&age=25";
let encodedURI = encodeURI(uri);
let encodedURIComponent = encodeURIComponent(uriComponent);
console.log(encodedURI);
// Output: /api/test؟name=John%20Doe&age=25
console.log(encodedURIComponent);
// Output: John%20Doe%26age%3D25
در مثال بالا خواهید دید که encodeURIComponent()
تابع را کدگذاری کرده است &
شخصیت، بر خلاف encodeURI()
. به عنوان مثال، زمانی که شما در حال ساخت URL با داده های پویا هستید، این رفتار مهم است. هنگامی که سرور این URL را دریافت می کند، URL را رمزگشایی می کند و پارامترها را به درستی تفسیر می کند و از مشکلات احتمالی جلوگیری می کند.
مورد استفاده دیگر برای encodeURIComponent()
زمانی است که شما با درخواست های AJAX سروکار دارید. هنگامی که با استفاده از روش GET داده ها را به سرور ارسال می کنید، الحاق داده ها به URL به عنوان پارامترهای پرس و جو بسیار معمول است. اگر این پارامترها حاوی کاراکترها یا فاصله های خاصی هستند، لازم است این کاراکترها را رمزگذاری کنید تا اطمینان حاصل شود که توسط سرور به درستی تفسیر می شوند.
نمونه ای از آن را می توان در موتورهای جستجو مشاهده کرد. به عنوان مثال، فرمت URL گوگل برای عملکرد جستجوی آنها است https://google.com/search؟q={query}
. بنابراین اگر میخواهید «rasanegar is great 👍» را جستجو کنید، URL حاصل را با استفاده از encodeURIComponent
، خواهد بود https://google.com/search؟q=rasanegar%20is%20great%20%F0%9F%91%8D
.
بیایید به مثال دیگری نگاهی بیندازیم:
let userName = "John Doe";
let age = 25;
let url = "/api/test؟name=" + encodeURIComponent(userName) + "&age=" + age;
// The final URL will be: "/api/test؟name=John%20Doe&age=25"
در این سناریو، اگر userName
متغیر حاوی هر کاراکتر یا فاصله خاصی است، آنها به درستی کدگذاری می شوند و اطمینان حاصل می کنند که سرور URL را همانطور که در نظر گرفته شده تفسیر می کند.
توجه داشته باشید: در حالی که encodeURIComponent()
بسیار مفید است، مهم است که به یاد داشته باشید که نباید از آن استفاده کنید روی کل URL، بلکه روی اجزای URI مجزا. اعمال آن بر روی کل URL میتواند منجر به نویسههای ncoding شود که قرار است معانی خاص خود را حفظ کنند، مانند :
یا /
که در https://
.
نتیجه
جاوا اسکریپت encodeURIComponent()
تابع یک ابزار مهم در زرادخانه توسعه دهندگان وب است که انتقال امن و دقیق داده ها را تسهیل می کند. با رمزگذاری اجزای URI منفرد، اطمینان حاصل می شود که اطلاعات به درستی توسط سرورها تفسیر می شوند، بنابراین از خطاهای احتمالی جلوگیری می شود و یکپارچگی داده ها حفظ می شود.
منتشر شده در 1403-01-03 16:15:04