هل الطريقة الوحيدة لتمرير معلمات POST في HTML من خلال نموذج؟

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

  •  11-07-2019
  •  | 
  •  

سؤال

في HTML، يمكنك إرسال البيانات من صفحة إلى أخرى باستخدام طلب GET بطريقتين:

http://www.example.com/somepage.php?data=1

...أو...

<form action="somepage.php" method="get">
  <input type="hidden" name="data" value="1" />
  <input type="submit" value="Submit">
</form>

ومع ذلك، مع طلب POST، رأيت فقط البيانات يتم إرسالها من خلال عناصر النموذج مثل هذا:

<form action="somepage.php" method="post">
  <input type="hidden" name="data" value="1" />
  <input type="submit" value="Submit">
</form>

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

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

المحلول

هناك طريقتان فقط للنشر من المتصفح - نموذج أو ملف اياكس طلب.

نصائح أخرى

<ع> استخدام HTML فقط، وهو النموذج هو السبيل الوحيد لإنشاء طلب POST. يمكنك استخدام الجانب البرمجة الخادم / جافا سكريبت لتوليد طلبات POST بطرق أخرى، ولكن توجد طرق أخرى للقيام مع HTML عادي فقط.

وكما كنت قد اكتشفت بالفعل، هناك بالضبط طريقتان لنقل البيانات عبر بروتوكول HTTP: GET أو POST. وهناك أيضا نوع ثالث من رسالة HTTP دعا HEAD، ولكن هذا حقا تستخدم فقط للحصول على البيانات الفوقية حول الموارد دون تنزيله ولم يتم تنفيذ على نطاق واسع.

ومن الواضح أن كلا GET وPOST يمكن الوصول إليها بسهولة من خلال استخدام علامة <form>. وGET هو أيضا يمكن الوصول إليها بسهولة عن طريق إضافة معلمات يدويا الاستعلام إلى URL في شكل أزواج اسم القيمة (foo.html?a=1&b=2).

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

وكما نضع في اعتبارنا أن خادم HTTP لا يعرف جوهرها ما إذا كان طلب (GET أو POST) جاء من نافذة المتصفح الرئيسي أو مكالمة AJAX. بغض النظر، فإن خادم الويب قراءة الطلب، سوف فك اذا كان طلب GET أو POST، والبحث عن أزواج اسم القيمة حسب الاقتضاء، وتوليد استجابة.

إذا كنت ترغب تفاصيل إضافية حول كيفية تهيئة طلب POST يمكنك الذهاب إلى jmarshall بشكل صحيح كوم / سهل / HTTP / أو ربما tcpipguide.com/free/t_HTTPRequestMessageFormat.htm . مورد النهائي هو دائما W3C ، لكن في بعض الأحيان يمكن أن يكون المراجع رهيب مربكة بالنسبة لنا البشر الفانين للقراءة.

في HTML فقط انها مع نموذج.

ولكن يمكنك أن تفعل ذلك إذا كنت تلعب مع الجانب الخادم الخاص بك. هنا هو مادة جيدة أن تظهر لك كيفية التعامل مع الحصول على تغييره إلى أضف عبر PHP. وهذا يتطلب منك للعب مع fsockopen ... هذه طريقة للقيام بذلك سوف تستخدم المعلمة الخاص بك؟ ID = 1 & المعلمة = 2 ... وسيخلق طلب POST على جانب الملقم. يمكنك ان تجعل من عام، بمجرد أن الاجهزة وسوف يعمل، ولكن هذا القليل من العمل لإعداد كل شيء أولا.

ويمكنك بالطبع دائما القيام GET إلى الصفحة التي تحتوي على جانب الخادم (أو AJAX) المنطق الذي سيخلق طلب POST (على سبيل المثال الحصول على /pageWhichCreatesAPost.py). فوضوي جدا بالطبع، ولكن يمكن أن يكون هناك الحالات التي يكون فيها مثل هذا العمل في جميع أنحاء ربما يمكن أن تكون مفيدة.

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