http ২০১৮ PUT, মুছে ফেলা, মাথা, ইত্যাদি পদ্ধতি বেশিরভাগ ওয়েব ব্রাউজারে উপলব্ধ?




ইত্যাদি ২০১৮ নীলফামারী (6)

এইচটিএমএল ফর্ম (এইচটিএমএল সংস্করণ 4 এবং এক্সএক্সএমএল 1 পর্যন্ত) শুধুমাত্র HTTP অনুরোধ পদ্ধতি হিসাবে জিইটি এবং পোষ্ট সমর্থন করে। এর জন্য একটি কার্যকারিতা হল পোষ্টের মাধ্যমে অন্য পদ্ধতিগুলিকে সুরক্ষিত ফর্ম ক্ষেত্র ব্যবহার করে সুরঞ্জিত করা যা সার্ভার দ্বারা পাঠানো হয় এবং অনুরোধটি সেইভাবে প্রেরণ করা হয়।

যাইহোক, GET , POST , PUT এবং DELETE সমস্ত প্রধান ওয়েব ব্রাউজারে (যেমন, ফায়ারফক্স, সাফারি, ক্রোম, অপেরা) XMLHttpRequest (অর্থাত্ AJAX কল) বাস্তবায়নের দ্বারা সমর্থিত।

আমি এখানে একটি দম্পতি প্রশ্ন দেখেছি যেমন কীভাবে বিশৃঙ্খল পরিষেবাগুলি ডিবাগ করবেন , যা উল্লেখ করে:

দুর্ভাগ্যবশত যে একই ব্রাউজার আমাকে HTTP PUT, DELETE, এমনকি একটি নির্দিষ্ট ডিগ্রী এমনকি HTTP POST পরীক্ষা করার অনুমতি দেবে না।

আমি শুনেছি যে ব্রাউজারগুলি কেবলমাত্র জিইটি এবং POST সমর্থন করে, অন্য কোন উত্স থেকে:

যাইহোক, ফায়ারফক্সে কয়েকটি দ্রুত পরীক্ষা দেখায় যে PUT পাঠানো এবং DELETE অনুরোধগুলি প্রত্যাশিত হিসাবে কাজ করে - XMLHttpRequest সফলভাবে সম্পন্ন করে এবং সঠিক পদ্ধতির সাথে সার্ভার লগগুলিতে অনুরোধটি দেখায়। আমি কি অনুপস্থিত নই, যেমন ক্রস-ব্রাউজার সামঞ্জস্য বা অ-স্পষ্ট সীমাবদ্ধতাগুলির কিছু দিক আছে?


XMLHttpRequest জাভাস্ক্রিপ্ট অবজেক্ট মডেলের একটি আদর্শ বস্তু।

উইকিপিডিয়ার মতে, XMLHttpRequest প্রথমে ইন্টারনেট এক্সপ্লোরার 5 এ ActiveX অবজেক্ট হিসাবে আবির্ভূত হয়েছিল, তবে তারপরে একটি মান হিসাবে তৈরি করা হয়েছে এবং এটি 1.0 থেকে মজিলা পরিবারের জাভাস্ক্রিপ্টে ব্যবহার করা হয়েছে, অ্যাপল সাফারি 1.2, অপেরা 7.60-পি 1 এবং IE। 7.0।

বস্তুর open() পদ্ধতিটি HTTP পদ্ধতিটিকে একটি যুক্তি হিসাবে গ্রহণ করে - এবং কোনও বৈধ HTTP পদ্ধতি গ্রহণ করার জন্য নির্দিষ্ট করা হয় (লিঙ্কটির আইটেম সংখ্যা 5 দেখুন) - GET , POST , HEAD , PUT এবং DELETE , নির্দিষ্ট করে আরএফসি 2616

একটি সাইড নোট হিসাবে IE 7-8 শুধুমাত্র নিম্নলিখিত HTTP পদ্ধতিগুলির অনুমতি দেয়: "পান", "পোস্ট", "মাথা", "চাপুন", "মুছে ফেলুন", "মুভ", "PROFIFIND", "PROPPATCH", "MKCOL" , "কপি", "লক", "আনলক" এবং "বিকল্প"


হ্যাঁ , PUT, DELETE, HEAD ইত্যাদি HTTP পদ্ধতিগুলি সমস্ত আধুনিক ব্রাউজারে উপলব্ধ।

XMLHttpRequest Level 2 ব্রাউজারগুলির সাথে সঙ্গতিপূর্ণ হওয়া এই পদ্ধতিগুলিকে সমর্থন করতে হবে । কোন ব্রাউজারটি XMLHttpRequest Level 2 সমর্থন করে তা পরীক্ষা করার জন্য আমি প্রস্তাব করতে পারি:

http://caniuse.com/#feat=xhr2

শুধুমাত্র অপেরা মিনি সমর্থনে এটিএম (জুলি '15) অভাব রয়েছে, তবে অপেরা মিনি সবকিছুই সমর্থন করে না। :)


এইচটিএমএল ফর্ম GET এবং POST সমর্থন করে। (HTML5 এক মুহুর্তে PUT / মুছে ফেলা হয়েছে, কিন্তু এটি বাদ দেওয়া হয়েছে।)

XMLHttpRequest CHICKEN সহ প্রতিটি পদ্ধতিকে সমর্থন করে, যদিও কিছু পদ্ধতির নামগুলি কেস-ইনসেন্সটিভ্যালি (HTTP- এর ক্ষেত্রে কেস সংবেদনশীল) পদ্ধতির সাথে মিলে যায় এবং কিছু পদ্ধতির নাম নিরাপত্তার কারণে (যেমন CONNECT) সমর্থিত হয় না।

ব্রাউজারগুলি ধীরে ধীরে XMLHttpRequest দ্বারা নির্দিষ্ট নিয়মগুলিতে রূপান্তরিত হয়, তবে অন্য মন্তব্যটি উল্লেখ করে এখনও কিছু পার্থক্য রয়েছে।


আমি বিশ্বাস করি যারা মন্তব্যগুলি ব্রাউজারে বিশেষভাবে উল্লেখ করে, অর্থাত লিঙ্কগুলিতে ক্লিক করা এবং ফর্ম জমা দেওয়া, XMLHttpRequest নয়। XMLHttpRequest শুধুমাত্র একটি কাস্টম ক্লায়েন্ট যা আপনি JavaScript এ লিখেছেন যা ব্রাউজারটি রানটাইম হিসাবে ব্যবহার করে।

আপডেট: স্পষ্ট করার জন্য, আমি বলতে চাইনি (যদিও আমি লিখেছি) যে আপনি XMLHttpRequest লিখেছেন; আমি বোঝাতে চেয়েছিলাম যে আপনি XMLHttpRequest ব্যবহার করে এমন কোড লিখেছেন। ব্রাউজারগুলি মূলত XMLHttpRequest সমর্থন করে না। XMLHttpRequest জাভাস্ক্রিপ্ট রানটাইম থেকে আসে, যা একটি ব্রাউজার দ্বারা হোস্ট করা যেতে পারে, যদিও এটি হতে হবে না ( Rhino )। তাই লোকেরা বলে যে ব্রাউজারগুলি PUT সমর্থন করে না এবং DELETE ফেলছে-কারণ এটি আসলে তাদের সমর্থিত জাভাস্ক্রিপ্ট।


_method লুকানো ক্ষেত্র _method

Rails ব্যবহার করা হয় এবং কোনো কাঠামো থেকে অভিযোজিত করা যেতে পারে:

  • কোনও ফর্মের লুকানো _method প্যারামিটার যুক্ত করুন যা পোস্ট বা পোস্ট নেই:

    <input type="hidden" name="_method" value="DELETE">

    এটি এইচটিএমএল তৈরির সহায়ক পদ্ধতির মাধ্যমে ফ্রেমওয়ার্কগুলিতে স্বয়ংক্রিয়ভাবে সম্পন্ন করা যেতে পারে (যেমন Rails form_tag )

  • পোস্ট <form method="post" ( <form method="post" ) করার জন্য প্রকৃত ফর্ম পদ্ধতি ঠিক করুন

  • সার্ভারে _method প্রক্রিয়া করে এবং সঠিক পোস্টের পরিবর্তে সেই পদ্ধতিটি ঠিক পাঠানো হয়েছে

যুক্তি / ইতিহাস কেন সম্ভব নয়: https://softwareengineering.stackexchange.com/questions/114156/why-there-are-no-put-and-delete-methods-in-html-forms





ajax