Avatar ·

كيفية ترميز URL بشكل صحيح في JavaScript؟ الفرق بين encodeURI و encodeURIComponent و escape

مرحبًا بالجميع! أنا مبتدئ في JavaScript وواجهت مشكلة أثناء العمل مع URL. أحتاج إلى إرسال طلب GET إلى الخادم مع معاملات تحتوي على أحرف خاصة، مثل المسافات أو السيريلية أو علامات الاستفهام. إليك مثال على الكود الخاص بي: ```javascript let baseUrl = "https://api.example.com/search"; let query = "JavaScript & HTML/CSS уроки"; let fullUrl = baseUrl + "?q=" + query; fetch(fullUrl) .then(response => response.json()) .then(data => console.log(data)); ``` هذا الكود لا يعمل لأن URL يحتوي على مسافات والرمز `&`. لقد بحثت ووجدت ثلاث دوال: `escape()` و `encodeURI()` و `encodeURIComponent()`. لكنني مرتبك — أي منها صحيح؟ عندما أستخدم `escape()`، يبدو أنه يعمل، لكنني سمعت أنها قديمة. و `encodeURI()` لا تشفر كل شيء، بينما `encodeURIComponent()` تشفر حتى الشرط المائلة. أرجو توضيح كيفية ترميز URL بشكل صحيح في JavaScript؟ في أي الحالات يجب استخدام كل من هذه الدوال؟ وماذا أفعل إذا