এক্সএইচআর অনুরোধের প্রতিক্রিয়া হিসাবে পুনর্নির্দেশে ফিরছে


149

ব্রাউজার যদি একটি এজ্যাক্স অনুরোধের পুনর্নির্দেশের প্রতিক্রিয়া পায় তবে কী হবে?


সম্পর্কিত: stackoverflow.com/q/8905545/248058
Knu

উত্তর:


216

ব্রাউজার যদি একটি এজ্যাক্স অনুরোধের পুনর্নির্দেশের প্রতিক্রিয়া পায় তবে কী হবে?

যদি সার্ভার একটি পুনঃনির্দেশ পাঠায় (যেমন 302 প্রতিক্রিয়া সহ একটি অবস্থান: শিরোনাম) তবে পুনঃনির্দেশ ব্রাউজারটি স্বয়ংক্রিয়ভাবে অনুসরণ করা হয়। দ্বিতীয় অনুরোধের প্রতিক্রিয়া (ধরে নেওয়াও এটি অন্য পুনর্নির্দেশ নয়) আপনার প্রোগ্রামে যা প্রকাশিত হয়েছে তা।

আসলে, 302 টি প্রতিক্রিয়া হয়েছে কিনা তা সনাক্ত করার ক্ষমতা আপনার নেই। যদি 302 পুনর্নির্দেশ 200 এর দিকে পরিচালিত করে, তবে আপনার প্রোগ্রামটি অনুরূপভাবে কাজ করে যেন মূল অনুরোধটি সরাসরি 200 এ পরিচালিত হয়।

এটি আমার অভিজ্ঞতা এবং আচরণটিতে ডাকে

২০১ Update আপডেট: সময় কেটে গেছে এবং সুসংবাদটি হ'ল এক্সএইচআর এর অনুরূপ ডিফল্ট আচরণের মাধ্যমে নতুন আনার () এপিআই পুনর্নির্দেশগুলি কীভাবে পরিচালিত হবে তার সূক্ষ্ম- গ্রেড কন্ট্রোল অফার করবে spec এটি বলেছিল, এটি কেবল সেখানে কাজ করে যেখানে আনয়ন () স্থানীয়ভাবে প্রয়োগ করা হয় । আনার () -র পলিফিল সংস্করণগুলি যা এক্সএইচআর-এর উপর ভিত্তি করে এক্সএইচআর এর সীমাবদ্ধতা অবিরত রাখে । ভাগ্যক্রমে, নেটিভ ব্রাউজার সমর্থনটি দুর্দান্তভাবে ছড়িয়ে পড়েছে।


47
মজার বিষয় হচ্ছে, আমি এটিতে পৌঁছেছি কারণ আমি এমন একটি পরিস্থিতির মুখোমুখি হয়েছি যেখানে স্পষ্টতই পুনর্নির্দেশটি অনুসরণ করা হচ্ছে না ... পুনর্নির্দেশ একই উত্স নীতি লঙ্ঘন করলে এটি ঘটে।
Gus

4
@ গুস যা সম্ভবত যৌক্তিক
দিমিত্রি

1
401 এ পুনর্নির্দেশের ক্ষেত্রে (বা কোনও 4xx বা 5xx ত্রুটি) আমি ধরে নিচ্ছি যে আপনার প্রোগ্রামটি এমন আচরণ করবে যেমন অনুরোধটি সরাসরি 401 তে পৌঁছেছে Is আপনি কি দেখছেন না এটি কি তাই না?
গ্রীম

2
একটি RESTful API পোস্টের অনুরোধের পরে 201 এবং একটি অবস্থান শিরোনাম প্রেরণ করতে পারে; দেখতে restapitutorial.com/lessons/httpmethods.html

1
2019 আপডেট: আনতে 3 বছর আগে আমরা যেমন প্রত্যাশা করছিলাম তেমন কাজ করে না):
lcjury

7

এই ajax-requestপুনঃনির্দেশ আফিকে অনুসরণ করবে। প্রকৃত বিষয়বস্তু ( .responseText, .responseXML) আপনি যে পৃষ্ঠাতে পুনঃনির্দেশিত হয়েছেন সেখান থেকে প্রাপ্ত সামগ্রী হবে।

আপনি 2 বা 3 এ পুনঃনির্দেশ ( status-code, location-header) বাধা দিতে সক্ষম হতে পারেন readyStateতবে এটি সম্পর্কে নিশ্চিত নন।


নাহ, সেই সমস্ত রাজ্যই ঠিক একই অবস্থা বহন করে। এমনকি এর মানও getAllResponseHeaders()সমান।
সেবাস্তিয়ানওয়াগনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.