طلبات الحصول على Ajax:استخدام المعلمات أو وضع البيانات في URL؟

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

  •  03-07-2019
  •  | 
  •  

سؤال

ما فائدة تمرير البيانات كمعلمات مقابل جزء من عنوان URL في طلب Ajax GET؟

باستخدام المعلمات:

var ajax = new Ajax.Request('server.php',{
    parameters: 'store=11200&product=Meat',
    onSuccess: function(myData){whatever}
});

باستخدام عنوان URL:

var ajax = new Ajax.Request('server.php?store=11200&product=Meat',{
    onSuccess: function(myData){whatever}
});
هل كانت مفيدة؟

المحلول

وميزة واحدة لاستخدام حجة parameters هو أنه يمكنك تمرير ذلك كائن مثل Hash بدلا من كسلسلة. (إذا قمت بذلك، على الرغم من التأكد من ذلك تعيين المعلمة method إلى "GET"، كأسلوب الافتراضي لطلبات النموذج اياكس هو وظيفة، وانظر <لأ href = "http://www.prototypejs.org/learn/introduction-to -ajax "يختلط =" noreferrer "> في النموذج مقدمة لاياكس لمزيد من التفاصيل).

وهناك ميزة أخرى، وهي أكثر تماشيا مع المثال الذي أعطيته، هو أنه يمكنك فصل URL طلب من الخيارات التي يتم إرسالها إلى ذلك. قد يكون هذا مفيدا إذا، على سبيل المثال، إذا أردت أن ترسل مجموعة من طلبات مماثلة إلى عدة عناوين مختلفة. (في هذه الحالة، وجود المعلمات المشتركة Hash أنه يمكنك تعديل كل طلب قد يكون أكثر فائدة، من استخدام سلسلة معلمة، كذلك.)

لمزيد من المعلومات، انظر الوثائق النموذج اياكس خيارات .

نصائح أخرى

أحد استخداماتي المفضلة لـ حدود هو تمرير جميع حقول النموذج دون إدراجها بشكل صريح:

new Ajax.Request('/myurl.php', {
  method:  'get',
  parameters:  $('myForm').serialize(),
  onSuccess:  successFunc(),
  onFailure:  failFunc()
}

للرد على هذا، يجب أن نعرف طريقة عمل المعلمات. HTTP أساسا (وأنا أعلم، وهناك أكثر) لديها طريقتين لطلب البيانات: الحصول على وظيفة

لGET، <م> المعلمات يتم إلحاق الموارد التي تطلبها، كما فعلت في التعليمات البرمجية أعلاه:؟ / بلدي / موارد / اسم para1 = بلوخ. هنا، ليس هناك فرق إذا قمت بإلحاق إذا مباشرة إلى اسم المورد أو استخدام الخيار المعلمات. GET يستخدم عادة لطلب البيانات (GET لها؛)

لالوظائف، و<م> المعلمات مكتوبة منفصلة من الموارد في الجسم HTTP. لهذا، يجب استخدام الخيار المعلمات. يستخدم POST لإرسال البيانات (ضخمة).

لتحديد الطريقة التي طلب استخدام، استخدم طريقة الخيار.

ملحوظة: المورد GET و(اعتمادا من خادم إلى خادم) حد الثابت على طول. حتى NEVER إرسال الكثير من البيانات باستخدام GET.

ويمكنك أيضا استخدام تنسيق:

var ajax = new Ajax.Request('server.php',{
  parameters: {
     store: 11200,
     product: "Meat"
  }
  onSuccess: function(myData){whatever}
});

في الاستفادة من فعل ذلك بهذه الطريقة هو أنه يمكنك تغيير من GET إلى ما بعد دون تغيير URL.

  • الوضوح
  • من السهل استخدام كائن وتسلسله ( {store: 11200, product: "Meat"})
  • الوضوح

لا يهم حقا من الناحية التقنية على هذا البعض من تنسيق وتفضيل لأن الحصول على طلبات دائما البيانات في URL. المعلمات هي مجرد وسيلة مريحة لبناء على طلب GET.

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