ما المقصود بـ 'xmlhttp.setRequestHeader () ؛'وفي أي حالات يتم استخدامه؟

StackOverflow https://stackoverflow.com/questions/8882627

سؤال

لقد عثرت على هذا الأمر بالصدفة أثناء تعلم AJAX.الشخص الذي صنع البرنامج التعليمي لم يشرح هذا الأمر ، فماذا تعني المعلمات داخل الأمر وما هو استخدامه ... فيما يلي الكود الذي استخدمته فيه: Genacodicetagpre

هل كانت مفيدة؟

المحلول

HTTP هو بروتوكول.جزء من هذا البروتوكول هو مفهوم عناوين الطلب.عندما يحدث xhr ، يتم تبادل النص بين العميل والخادم.رؤوس الطلبات هي جزء من النص الذي يرسله العميل إلى الخادم.

هذه طريقة لتعيين رؤوس الطلب.الحجج التي تراها هي

1) العنوان المطلوب تعيينه (في هذه الحالة ، نوع المحتوى )
2) قيمة الرأس.(في هذه الحالة ، x-www-form-urlencoded )

راجع هذا لمزيد من المعلومات.

نصائح أخرى

هذا هو بالضبط ما تقوله.سيحدد معلومات "رأس" للجيل التالي من رمز الرمز.

يعتبر الرأس إلى حد كبير زوج مفتاح / قيمة.يتم استخدامه لنقل المعلومات "التعريفية" إلى الخادم الهدف للطلب المستمر.في المثال الخاص بك ، يتم استخدامه لإخبار الخادم بنوع المحتوى المستخدم لهذا الطلب.

طلبات HTTP هي الرسائل التي يتم تمريرها من نظام كمبيوتر إلى آخر وفقًا لإجراءات محددة ("بروتوكول" - هنا H yper T ext T ransfer P rotocol) للقيام بأشياء مثل إرسال البيانات ، وطلب إعادة البيانات ، وتحديث البيانات المرسلة مسبقًا ، وما إلى ذلك.

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

يمكن وضع أكثر من رأس واحد في طلب HTTP ولكل رأس مكون "اسم" و "قيمة". على صفحات الويب تبدو مثل Genacodicetagpre

وتجدها أسفل الجزء العلوي من صفحة الويب داخل العنصر.

لتمكين الأشخاص من إرسال طلبات HTTP من داخل وظيفة JavaScript ، نقوم بإنشاء كائن XMLHttpRequest جديد ، تمامًا كما تفعل التعليمات البرمجية الخاصة بك مع

Genacodicetagpre

إلى هذا الكائن الفارغ الجديد الذي تنوي إضافة البيانات إليه. على الرغم من اسمه ، يسمح XMLHttpRequest أيضًا بإرسال البيانات بعدد من التنسيقات بخلاف XML ، على سبيل المثال كود HTML ، نص ، JSON ، إلخ. في المثال الخاص بك ، سيتم فصل كل اسم بيانات عن قيمته بواسطة حرف "=" وسيتم فصل كل اقتران بيانات / قيمة عن الاقتران التالي بحرف "&". يُعرف هذا النوع من التنسيق باسم ترميز URL.

يتعين علينا إخبار الكمبيوتر المتلقي بكيفية تشفير البيانات داخل نص طلب HTTP. هناك رأس قياسي لنقل هذا ويتم إضافته إلى الطلب عبر الطريقة setRequestHeader (..) . تستخدم هذه الطريقة معلمتين ، اسم الرأس وقيمة الرأس. كل هذه العملية تتحقق في الخط

Genacodicetagpre

يجب تطبيق طريقة setRequestHeader (..) هذه على الطلب بعد تم تمييز الطلب بـ open (...) ولكن قبل يتم إرسال الطلب النهائي باستخدام طريقة الإرسال (.) .

تحدد طريقة open (...) : (1) نوع طلب HTTP ، على سبيل المثال الحصول على / POST / PUT إلخ ؛ (2) صفحة الويب التي تحتوي على البرنامج النصي للتعامل مع هذا الطلب ، على سبيل المثال بعض ملفات .php أو .js التي تجعل الاستعلام المناسب لقاعدة البيانات الخلفية ؛ و (3) طبيعة ديناميكيات الطلب ، على سبيل المثال يتم تعيين قيمة "صواب" للطلبات غير المتزامنة ، ويتم تعيين "خطأ" للطلبات المتزامنة.

تقوم طريقة send (.) بإرفاق البيانات المراد إرسالها داخل نص الطلب ، وفي حالتك المتغير المسمى "معلمات".

فيما يتعلق بسؤالك الأوسع عن المواقف التي يتم فيها استخدام setRequestHeader (..) ، أود أن أقول إنه يتم استخدامه في معظم حالات طلب HTTP. ولكن تمت إضافة بيانات بعض أنواع البيانات إلى النص الأساسي طلب HTTP استدعاء إعدادًا افتراضيًا لرأس "نوع المحتوى".

يعيّن رأس HTTP من نوع المحتوى ليحتوي على بيانات URL مشفرة مرسلة من نموذج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top