انتقل إلى المحتوى
إدارة الروابط

لماذا يفقد رابطك البيانات؟ أصلح المعلمات والأجزاء

ميّز بين & و# داخل عنوان URL، وتجنب الترميز المزدوج، وافحص باستخدام WikiURL الرابط الفعلي الذي تريد مشاركته.

WikiURL · إعادة التوجيه · تاريخ النشر

عدسة مكبرة تساعد على وصل مكونات رابط بجوار علامة مرجعية للصفحة.

الصفحة التي تفتح لا تتلقى دائمًا ما توقعته

أعددت رابطًا للبحث عن القهوة والشاي. تفتح الصفحة، لكن النتائج لا توافق قصدك. قبل لوم الخادم أو خدمة الاختصار، راجع العنوان الدقيق الذي شاركته. في مثالنا الوهمي، لا يمثل q=cafe&te قيمة واحدة هي cafe&te وفق التفسير المعتاد لمعلمات النماذج؛ فالرمز & يفصل بين المدخلات. كذلك يشير #precios إلى جزء من المورد. استبدل example.invalid بصفحة تملكها وتدعم الاستعلام قبل تجربة عنوان حقيقي.

قسّم التشخيص إلى ثلاثة أسئلة: أي صفحة تريد فتحها، وما البيانات التي يجب أن تتلقاها، وأي جزء تريد عرضه بعدها؟ انسخ عنوان URL للرابط، لا النص الظاهر على الزر فقط. احفظ نسخة مرجعية قبل التعديل. يقترح الدليل مراجعة المكونات ثم فحص النتيجة بواسطة WikiURL؛ ولا يعد بأن كل موقع يتعرف على q أو بأن الاستجابة الناجحة تعني نتائج بحث صحيحة.

https://example.invalid/buscar?q=cafe&te#precios

إذا كان رمز & جزءًا من النص، فلا تستخدمه كفاصل

للبحث حرفيًا عن cafe & te، ينتمي رمز & إلى قيمة q. عند بناء المعلمات باستخدام URLSearchParams، قدّم النص دون ترميز؛ سيمثل تسلسله هذا الحرف بصيغة %26. توضح MDN أن هذه الواجهة تطبق ترميز النماذج عند تحويل المعلمات إلى نص، وتمثل المسافات بالرمز +. لا يعني ذلك استبدال جميع رموز & في عنوان URL؛ فبعضها يفصل المعلمات بصورة مقصودة.

ينشئ مثال JavaScript العنوان من أساس، ويعيّن قيمة البحث، ثم يضيف الجزء بصورة منفصلة. يمكنك تشغيله محليًا في بيئة JavaScript لمشاهدة النتيجة دون إرسال بحث إلى النطاق الوهمي. إذا لم تكن تبرمج، فاستخدم الرابط الذي تولده صفحة البحث الخاصة بك بدل جمع النص يدويًا. قارن القيمة المتوقعة بالنتائج التي يعرضها الموقع؛ ظهور %26 في الرابط وحده لا يكشف كيف يفسر تطبيق معين البيانات.

const url = new URL("https://example.invalid/buscar");
url.searchParams.set("q", "cafe & te");
url.hash = "precios";
console.log(url.href);
// https://example.invalid/buscar?q=cafe+%26+te#precios

الجزء ليس معلمة يتلقاها الخادم

توثق MDN أن الجزء الواقع بعد # يُعالج لدى العميل ولا يُرسل إلى الخادم عند طلب المورد. قد تستخدمه الصفحة للوصول إلى قسم، مثل precios، أو لسلوك آخر في التطبيق. لذلك، في q=cafe#te، لا تكمل te القيمة التي يتلقاها الخادم في ذلك الطلب. إذا كان الرمز # جزءًا من نص البحث، فتمثيله داخل القيمة هو %23، كما يوضح العنوان الثالث.

تحقق من الأثرين بصورة منفصلة: ينبغي أن يعرض البحث النتائج المطلوبة وأن يصل الجزء إلى المكان المقصود. يجب أن يكون القسم موجودًا أو أن يتعرف التطبيق على الجزء. أداة تطلب الموقع من خادم لا تؤكد بمفردها انتقال المتصفح إلى قسم. ولا تحذف جميع الأجزاء كحل شامل؛ فقد تزيل تحديدًا الجزء الذي يحتاج إليه المستلم.

https://example.invalid/buscar?q=cafe%23te#precios

رمّز القيمة مرة واحدة، لا العنوان كله

يميّز المعيار RFC 3986 بين الحروف الفاصلة للمكونات والبيانات، ويحذر من ترميز السلسلة نفسها أو فك ترميزها مرارًا. إذا قدمت cafe%26te كنص مرمز مسبقًا إلى دالة تتوقع قيمة غير مرمزة، فقد تتحول علامة النسبة إلى %25 ويظهر %2526. بذلك أضفت طبقة، ولم تحفظ البحث المقصود تلقائيًا. يساعد سطرا المثال على اكتشاف هذا التغيير.

يعتمد التصحيح على مصدر البيانات. إذا بدأت كنص بشري، فمررها دون ترميز إلى الواجهة التي تبني المعلمات. وإذا بدأت كعنوان URL كامل وصحيح، فلا تتعامل معه كقيمة واحدة لإعادة ترميز العنوان كله. وثّق ما تتلقاه كل دالة أو نموذج. تجنب عمليات الاستبدال الشاملة على % أو & أو #؛ فقد تغير فواصل صحيحة أو معلمات لازمة أو مسارات لم تقصد تعديلها.

q=cafe%26te
q=cafe%2526te

استخدم WikiURL للاستجابة والمتصفح للمحتوى

عندما يكون لديك عنوان عام حقيقي، الصقه في أداة فحص URL في WikiURL. راجع حالة HTTP والوجهة النهائية المعادتين. يرسل التنفيذ الطلب من الخادم ويتبع إعادة التوجيه؛ وتساعد المراجعة على كشف وجهة غير متوقعة. لا تلصق روابط إدارة أو كلمات مرور أو عناوين تحتوي بيانات خاصة. لا تحاول فحص example.invalid في الأمثلة؛ فهو مستخدم هنا كوجهة وهمية.

افتح النسخة الحقيقية في المتصفح أيضًا وافحص البحث والقسم. قد تحمل الاستجابة الناجحة الصفحة دون تطبيق المرشح المتوقع. إذا وُجدت إعادة توجيه، فقارن معلماتها بالنسخة المرجعية وراقب الجزء في المتصفح. لا تفسر الأداة منطق التطبيق نيابة عنك، ولا تصادق على الأمان، ولا تثبت امتلاك حساب المستخدم صلاحية رؤية المحتوى. الهدف جمع دليل الاستجابة مع مراجعة وظيفية.

اختبر النسخة التي سيتلقاها شخص آخر

الصق الرابط النهائي في قناة مشاركته وافتح تلك النسخة قبل توزيعه على نطاق واسع. تأكد من عدم تضمين نقطة نهاية الجملة أو فقدان جزء أثناء النسخ أو اعتبار النص الظاهر هو الوجهة. اختبر دون الاعتماد على جلسة المدير عندما ينبغي أن يكون المحتوى عامًا. إذا حولته إلى QR، فراجع كذلك العنوان الذي يظهر عند المسح، إضافة إلى الملف الأصلي.

احتفظ بسجل صغير: العنوان الأصلي وقيمة البحث المتوقعة والجزء المقصود وعنوان URL المشترك والنتيجة الملحوظة. إذا فشل، فعد إلى المكون المعني وكرر الاختبار بعد التصحيح. انشر النسخة المفحوصة فقط. هكذا تميز خطأ بناء المعلمات من إعادة توجيه تغير الوجهة أو سلوك للمتصفح، دون اعتبار فتح الرابط ضمانًا لاحتفاظه بكل البيانات التي أردت إرسالها.

فتح الأداة →

المصادر والوثائق

← جميع الأدلة