এক্সএমএলএইচটিপিআরকোয়েস্ট-এস প্রেরণ করার সময় ব্রাউজারটি নিম্নলিখিত নির্দেশাবলী থেকে বাধা দেওয়া কি সম্ভব (যেমন পুনঃনির্দেশের স্থিতি কোডটি ফিরে পেতে এবং নিজেই এটি পরিচালনা করতে)?
এক্সএমএলএইচটিপিআরকোয়েস্ট-এস প্রেরণ করার সময় ব্রাউজারটি নিম্নলিখিত নির্দেশাবলী থেকে বাধা দেওয়া কি সম্ভব (যেমন পুনঃনির্দেশের স্থিতি কোডটি ফিরে পেতে এবং নিজেই এটি পরিচালনা করতে)?
উত্তর:
এক্সএমএলএইচটিপিপিউইকুয়েস্ট অবজেক্টের (জোর দেওয়া যুক্ত) জন্য ডাব্লু 3 সি মান অনুযায়ী নয় :
প্রতিক্রিয়াটি যদি কোনও HTTP পুনর্নির্দেশ হয়:
যদি অবস্থান শিরোনাম দ্বারা প্রদত্ত ইউআরএলটির উত্সটি XMLHttpRequest উত্সের সাথে একই উত্স এবং পুনর্নির্দেশ অসীম লুপ সতর্কতা লঙ্ঘন করে না, একই-উত্স অনুরোধ ইভেন্টের নিয়মগুলি পর্যবেক্ষণ করার সময় স্বচ্ছভাবে পুনঃনির্দেশকে অনুসরণ করুন ।
তারা এটি ভবিষ্যতের মুক্তির জন্য বিবেচনা করছিল :
এই স্পেসিফিকেশনটিতে নিম্নলিখিত বৈশিষ্ট্যগুলি অন্তর্ভুক্ত নয় যা এই স্পেসিফিকেশনের ভবিষ্যতের সংস্করণের জন্য বিবেচিত হচ্ছে:
- নিম্নলিখিত পুনঃনির্দেশগুলি অক্ষম করার সম্পত্তি;
তবে সর্বশেষতম উল্লেখটি আর এর উল্লেখ করে না।
নতুন এপিআই পান সমর্থন পুনর্নির্দেশ হ্যান্ডলিং বিভিন্ন মোড: follow
, error
, এবং manual
, কিন্তু আমি যখন ফেরৎ বাতিল করা হয়েছে নতুন URL বা স্থিতি কোড দেখার জন্য একটি উপায় খুঁজে পাচ্ছি না। আপনি কেবল পুনঃনির্দেশটি নিজেই থামাতে পারেন এবং তারপরে এটি একটি ত্রুটির মতো দেখাচ্ছে (খালি প্রতিক্রিয়া)। আপনার যদি প্রয়োজন হয় তবে আপনি যেতে ভাল। এছাড়াও আপনার সচেতন হওয়া উচিত যে এই এপিআইয়ের মাধ্যমে করা অনুরোধগুলি এখনও বাতিলযোগ্য নয় । তারা হয় এখন।
এক্সএমএলএইচটিএপপিউকুয়েস্ট হিসাবে, আপনি HEAD
সার্ভারটি দেখতে পারেন এবং URL টি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করতে পারেন :
var http = new XMLHttpRequest();
http.open('HEAD', '/the/url');
http.onreadystatechange = function() {
if (this.readyState === this.DONE) {
console.log(this.responseURL);
}
};
http.send();
আপনি স্থিতি কোডটি পাবেন না, তবে এটি থেকে পুরো পৃষ্ঠাটি ডাউনলোড না করেই নতুন URL খুঁজে পাবেন।
OPTIONS
করা আরও ভাল পছন্দ হতে পারে, যাইহোক কেবল অ সাধারণ উদ্দেশ্যে কাজ করে etc. ইত্যাদি প্রশাসক পুরো সাইট / স্কিমা পুনঃনির্দেশের কনফিগার করেছিলেন যেমন এইচটিটিপি -> এইচটিটিপিএস
responseURL
পুনর্নির্দেশ গন্তব্য পেতে আপনি সম্পত্তি ব্যবহার করতে পারেন বা চূড়ান্তভাবে আপনি গ্রহণযোগ্য কোনও অবস্থান থেকে প্রতিক্রিয়া এনেছে কিনা তা পরীক্ষা করতে পারেন।
অবশ্যই এর অর্থ ফলাফল যেভাবেই হোক এনেছে, তবে কমপক্ষে আপনি পুনর্নির্দেশ গন্তব্য সম্পর্কে প্রয়োজনীয় তথ্য পেতে পারেন এবং উদাহরণস্বরূপ শর্তগুলি সনাক্ত করতে যখন আপনি প্রতিক্রিয়াটি বাতিল করতে চান।
না আপনি XMLHttpRequest দ্বারা উন্মুক্ত API এ এমন কোনও জায়গা নেই যা আপনাকে 301 বা 302 স্বয়ংক্রিয়ভাবে অনুসরণ করার ডিফল্ট আচরণকে ওভাররাইড করতে দেয়।
যদি ক্লায়েন্ট উইন্ডোজগুলিতে আইই চালাচ্ছে তবে আপনি সেই আচরণটি রোধ করার জন্য একটি বিকল্প সেট করার পরিবর্তে WinHTTP ব্যবহার করতে পারেন তবে খুব সীমাবদ্ধ সমাধানের জন্য।