الكشف من جانب العميل عن طريقة طلب HTTP
-
02-07-2019 - |
سؤال
هل من الممكن اكتشاف طريقة طلب HTTP (على سبيل المثال؟الحصول على أو نشر) لصفحة من جافا سكريبت؟إذا كان الأمر كذلك، كيف؟
المحلول
في كلمة واحدة - لا
نصائح أخرى
لا أعتقد ذلك.إذا كنت بحاجة إلى هذه المعلومات، أقترح تضمين أ <meta>
عنصر تم إنشاؤه على الخادم والذي يمكنك التحقق منه باستخدام JavaScript.
على سبيل المثال، مع PHP:
<meta id="request-method" name="request-method" content="<?php echo htmlentities($_SERVER['REQUEST_METHOD']); ?>">
<script type="text/javascript">
alert(document.getElementById("request-method").content);
</script>
إذا كنت بحاجة إلى هذه الوظيفة، فاطلب من الخادم اكتشاف الطريقة المستخدمة ثم تعديل شيء ما في DOM بحيث يمكنك قراءته لاحقًا.
يمكنك التحقق من مُحيل الصفحة:
document.referrer == document.URL
إذا كانت نفس الصفحة، فمن المحتمل جدًا أن يكون المستخدم قد أرسل النموذج.
بالطبع هذا يتطلب
- أنك لا تربط من صفحة بنفسها (وهو أمر مطلوب لإمكانية الوصول على أي حال)
- أن يتم إرسال النموذج إلى نفس الصفحة الموجودة فيه
- أن المستخدم لم يقم بتعطيل المُحيل
لا يمكنك القيام بذلك من أجل منشور/حصول عادي ولكن يمكنك الوصول إلى هذه المعلومات إذا كنت تستخدم استدعاء xmlhttp واستخدمت getResponseHeader
جرب هذا
function getURIQueryString(){
var params = {};
var qstring = window.location.toString().substring(window.location.toString().indexOf("?") + 1);
var regex = /([^&=]+)=([^&=]+)/g;
var m;
while (m = regex.exec(qstring)){
params[decodeURIComponent(m[1])] = decodeURIComponent(m[2])
}
return params
}
عادة ما يعمل.على سبيل المثال للحصول على معلمات تسمى test.استخدم هذا
getURIQueryString().test
لكن من المستحيل الحصول على طلب نشر