0 এর একটি এইচটিটিপি স্থিতির কোডটির কোনও অর্থ আছে?


91

এটি প্রদর্শিত হয় যে আপনি যখন কোনও ব্রাউজারের কোনও স্ক্রিপ্ট থেকে এক্সএমএলএইচটিপিআরএকপিস্ট করেন, ব্রাউজারটি অফলাইনে কাজ করা সেট করা থাকে বা যদি নেটওয়ার্ক কেবলটি বের করা হয়, তবে অনুরোধটি একটি ত্রুটি দিয়ে এবং স্থিতি = 0 দিয়ে সম্পূর্ণ হয় না তবে অনুমতিপ্রাপ্তদের মধ্যে তালিকাভুক্ত নয় HTTP স্থিতি কোডগুলি।

0 এর একটি স্থিতি কোড বলতে কী বোঝায়? সমস্ত ব্রাউজার এবং সমস্ত এইচটিটিপি ক্লায়েন্টের ইউটিলিটিগুলির জন্য এটি কি একই জিনিস বোঝায়? এটি কি এইচটিটিপি অনুচ্ছেদের অংশ বা এটি অন্য কোনও প্রোটোকল অনুচ্ছেদের অংশ? এটি মনে হচ্ছে যে এইচটিটিপি অনুরোধটি মোটেই তৈরি করা যায়নি, সম্ভবত সার্ভারের ঠিকানাটি সমাধান করা যায়নি।

ব্যবহারকারীকে দেখানোর জন্য কোন ত্রুটি বার্তাটি উপযুক্ত? "হয় আপনি ইন্টারনেটের সাথে সংযুক্ত নন, বা ওয়েবসাইটটি সমস্যার মুখোমুখি হচ্ছে, বা ঠিকানার মধ্যে টাইপিংয়ের ত্রুটি থাকতে পারে"?

আমার এতে যোগ করা উচিত যে আমি "ওয়ার্ক অফলাইন" সেট করার সময় ফায়ারফক্সে আচরণটি দেখি, তবে "ওয়ার্ক অফলাইন" সেট করার সময় মাইক্রোসফ্ট ইন্টারনেট এক্সপ্লোরারে নেই। আইই-তে, ব্যবহারকারী অনলাইনে যাওয়ার বিকল্প প্রদান করে একটি ডায়ালগ পান। ফায়ারফক্স ত্রুটি ফিরিয়ে দেওয়ার আগে ব্যবহারকারীকে অবহিত করে না।

"আরও ভাল ত্রুটির বার্তাটি দেখানোর" অনুরোধের জবাবে আমি এটি জিজ্ঞাসা করছি। ইন্টারনেট এক্সপ্লোরার যা করে তা ভাল। এটি ব্যবহারকারীকে কী কারণে সমস্যা সৃষ্টি করছে তা বলে এবং তাদের এটির সমাধানের বিকল্প দেয়। ফায়ারফক্সের সাথে সমতুল্য ইউএক্স দেওয়ার জন্য আমার সমস্যার কারণটি নির্ধারণ করতে এবং ব্যবহারকারীকে অবহিত করতে হবে। সুতরাং আমি মোট 0 অবস্থা থেকে অনুমান করতে পারেন? এটির সর্বজনীন অর্থ আছে বা এটি আমাকে কিছুই বলে না?


দয়া করে এই প্রশ্নটি দেখুন, যা একই বিষয়টিকে কভার করে: স্ট্যাকওভারফ্লো
স্কট স্টাফোর্ড

4
আমার বিশ্বাস এই সবচেয়ে সঠিক উত্তর: stackoverflow.com/a/14507670/700206
whitneyland

অন্য সম্পর্কিত পোস্ট - HTTP স্থিতি কোড 0 এর অর্থ কী
আরবিটি

উত্তর:


155

সংক্ষিপ্ত উত্তর

এটি কোনও এইচটিটিপি রেসপন্স কোড নয়, তবে এটি বা আনতে XMLHttpRequestপ্রতিক্রিয়ার স্থিতি বৈশিষ্ট্যের বৈধ মান হিসাবে হোয়াটাব্লুজি দ্বারা নথিভুক্ত করা হয়েছে ।

বিস্তৃতভাবে বলতে গেলে, এটির জন্য একটি ডিফল্ট মান ব্যবহৃত হয় যখন রিপোর্ট করার জন্য সত্যিকারের এইচটিটিপি স্থিতি কোড না থাকে এবং / অথবা অনুরোধটি প্রেরণ বা প্রতিক্রিয়া পাওয়ার সময় কোনও ত্রুটি ঘটে। এটির ক্ষেত্রে সম্ভাব্য পরিস্থিতিগুলি অন্তর্ভুক্ত করে তবে সীমাবদ্ধ নয়:

  • অনুরোধটি এখনও প্রেরণ করা হয়নি, বা বাতিল করা হয়েছে।
  • ব্রাউজারটি এখনও প্রতিক্রিয়া স্থিতি এবং শিরোনামগুলি পেতে অপেক্ষা করছে।
  • অনুরোধের সময় সংযোগটি বাদ পড়েছে।
  • অনুরোধ সময় শেষ হয়েছে.
  • অনুরোধটির একটি অসীম পুনর্নির্দেশ লুপের মুখোমুখি।
  • ব্রাউজারটি প্রতিক্রিয়ার স্থিতি জানে, তবে একই-উত্স নীতি সম্পর্কিত সুরক্ষা বিধিনিষেধের কারণে আপনি এটি অ্যাক্সেসের অনুমতি পাচ্ছেন না ।

দীর্ঘ উত্তর

প্রথমত, পুনরুক্তি করতে: 0 টি এইচটিটিপি স্থিতি কোড নয়। আরএফসি 7231 বিভাগ 6.1 এগুলির একটি সম্পূর্ণ তালিকা রয়েছে, এতে 0 অন্তর্ভুক্ত নেই এবং বিভাগ 6 এর অন্তর্ভুক্তি স্পষ্টভাবে জানিয়েছে যে

স্থিতি-কোড উপাদানটি একটি তিন-সংখ্যার পূর্ণসংখ্যার কোড

যা 0 নয়।

যাইহোক, 0 .statusএক্সএমএলএইচটিপিপিউইকুয়েস্ট অবজেক্টের বৈশিষ্ট্যের মান হিসাবে নথিভুক্ত করা হয়, যদিও সমস্ত প্রাসঙ্গিক বিবরণ সন্ধান করা কিছুটা জটিল। আমরা https://xhr.spec.hatwg.org/#the-status-attribute এ শুরু করি , .statusএট্রিবিউটটি ডকুমেন্টিং করে , যা কেবলমাত্র বলে:

statusঅ্যাট্রিবিউট ফিরে আসবে প্রতিক্রিয়া 'র অবস্থা

এটি শূন্য এবং টোটোলজিকাল শোনাতে পারে তবে বাস্তবে এখানে তথ্য আছে! মনে রাখবেন যে এই ডকুমেন্টেশনটি এখানে কোনও প্রতিক্রিয়ার নয়, .responseকোনও অ্যাট্রিবিউট সম্পর্কে কথা বলছে XMLHttpRequest, সুতরাং এটি আমাদেরকে বলে যে এক্সএইচআর অবজেক্টের স্থিতির সংজ্ঞাটি ফেচ স্পকে একটি প্রতিক্রিয়ার স্ট্যাটাসের সংজ্ঞা থেকে পিছিয়ে দেওয়া হয়েছে।

কিন্তু কি প্রতিক্রিয়া আপত্তি? আমরা আসলে যদি এখনও কোনও প্রতিক্রিয়া না পাই তবে কী হবে? "প্রতিক্রিয়া" শব্দের ইনলাইন লিঙ্কটি আমাদের https://xhr.spec.whatwg.org/# আপত্তিতে নিয়ে যায় , যা ব্যাখ্যা করে:

একটি XMLHttpRequestক্ষেত্রে সংশ্লিষ্ট প্রতিক্রিয়া আছে। না বলা না হলে এটি একটি নেটওয়ার্ক ত্রুটি

সুতরাং যার প্রতিক্রিয়া আমরা তার স্থিতি পাচ্ছি ডিফল্টভাবে একটি নেটওয়ার্ক ত্রুটি। এবং এক্সএইচআর অনুচ্ছেদে "সেট সাড়া প্রতিক্রিয়া" শব্দটি সর্বত্র অনুসন্ধান করে আমরা দেখতে পাচ্ছি যে এটি পাঁচটি স্থানে সেট করা হয়েছে:

আনার স্ট্যান্ডার্ডটি অনুসন্ধান করে আমরা দেখতে পাচ্ছি:

একটি নেটওয়ার্ক ত্রুটি একটি প্রতিক্রিয়া যার স্ট্যাটাস সর্বদা0

সুতরাং আমরা তাত্ক্ষণিকভাবে বলতে পারি যে আমরা যে কোনও ক্ষেত্রে এক্সএইচআর অবজেক্টে 0 এর একটি স্ট্যাটাস দেখতে পাব যেখানে এক্সএইচআর অনুমানটি বলেছে যে প্রতিক্রিয়াটি কোনও নেটওয়ার্ক ত্রুটিতে সেট করা উচিত। (মজার বিষয় হল, এটির ক্ষেত্রে দেহের স্রোতটি "ভুল" হয়ে যায়, যা ফেচ স্পেক আমাদের জানায় স্ট্যাটাস পাওয়ার পরে শরীরের পার্সিংয়ের সময় ঘটতে পারে - তাই তত্ত্বের মধ্যে আমি ধারণা করি যে কোনও এক্সএইচআর বস্তুর পক্ষে এর অবস্থান থাকা সম্ভব) 200 এ সেট করুন, তারপরে মেমরির বাইরে থাকা মেমরির ত্রুটি বা কোনও কিছু পেতে দেহটি পাওয়ার সময় এবং তাই এর স্থিতিটি আবার 0 এ পরিবর্তন করুন)

আমরা আনয়ন স্ট্যান্ডার্ডে আরও নোট করি যে আরও কয়েকটি প্রতিক্রিয়া ধরণের দম্পতি উপস্থিত রয়েছে যার অবস্থান 0 হিসাবে সংজ্ঞায়িত করা হয়েছে, যার অস্তিত্ব ক্রস-আর্জি অনুরোধ এবং একই-উত্স নীতি সম্পর্কিত:

একটি অস্বচ্ছ ফিল্টার প্রতিক্রিয়া হ'ল একটি পরিশোধিত প্রতিক্রিয়া যার ... স্থিতি 0...

একটি অস্বচ্ছ-পুনর্নির্দেশ ফিল্টার করা প্রতিক্রিয়া হ'ল একটি পরিশোধিত প্রতিক্রিয়া যার ... স্থিতি 0...

(এই দুটি প্রতিক্রিয়ার প্রকারের অন্যান্য বিভিন্ন বিবরণ বাদ দেওয়া হয়েছে)।

কিন্তু এই বহুদূরে, এছাড়াও আছে অনেক ক্ষেত্রে কোথায় আছেন তা পান অ্যালগরিদম একটি নেটওয়ার্ক ত্রুটির ফিরে যাওয়ার ব্রাউজারের জন্য আহ্বান (বরং XHR বৈশিষ্ট, যা আমরা ইতিমধ্যে দিকে তাকিয়ে করেছি তুলনায়)! প্রকৃতপক্ষে, "একটি নেটওয়ার্ক ত্রুটি ফিরিয়ে দিন" বাক্যাংশটি আনুন স্ট্যান্ডার্ডে 40 বার উপস্থিত হয় । আমি এখানে 40 জনকে তালিকাবদ্ধ করার চেষ্টা করব না, তবে আমি নোট করি যে সেগুলি অন্তর্ভুক্ত রয়েছে:

  • যে ক্ষেত্রে অনুরোধের স্কিমটি অজানা
  • আশ্চর্যজনকভাবে অস্পষ্ট নির্দেশনা "সন্দেহ হলে, একটি নেটওয়ার্ক ত্রুটি ফিরে দিন।" এফটিপি: // এবং ফাইল: // ইউআরএল পরিচালনা করার জন্য অ্যালগরিদমে
  • অসীম পুনঃনির্দেশ: "যদি অনুরোধের পুনঃনির্দেশের গণনা বিশ হয়, একটি নেটওয়ার্ক ত্রুটি ফিরে দিন" "
  • CORS- সম্পর্কিত ইস্যুগুলির একটি গোছা, যেমন "যদি httpRequest এর প্রতিক্রিয়া কল্পনা" কর্স না হয় এবং অনুরোধ এবং প্রতিক্রিয়া রিটার্নের সাথে ক্রস-অরিজিন রিসোর্স পলিসি চেক করা থাকে তবে একটি নেটওয়ার্ক ত্রুটি ফিরিয়ে দিন ""
  • সংযোগ ব্যর্থতা: "যদি সংযোগ ব্যর্থ হয় তবে একটি নেটওয়ার্ক ত্রুটি ফিরে দিন" "

অন্য কথায়: যখনই সার্ভার থেকে 500 বা 400 এর মতো সত্যিকারের এইচটিটিপি ত্রুটি স্থিতির কোডটি পাওয়ার বাইরে অন্য কোনও কিছু ঘটে তখন আপনি ব্রাউজারে আপনার এক্সএইচআর অবজেক্ট বা আনুন প্রতিক্রিয়া অবজেক্টটিতে 0 এর একটি স্ট্যাটাস অ্যাট্রিবিউট দিয়ে শেষ করেন। বিশেষে গণনা করা সম্ভব নির্দিষ্ট কারণগুলির সংখ্যা বিস্তৃত।

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


53

স্থিতি 0 প্রদর্শিত হয় যখন পৃষ্ঠাটি রিফ্রেশ করে বা পৌঁছনীয় নয় এমন একটি URL অনুরোধ করে প্রতিক্রিয়া পাওয়ার আগে একটি অজ্যাক্স কল বাতিল করা হয়েছিল।

এই স্থিতিটি নথিভুক্ত নয় তবে অজ্যাক্স এবং গ্যাজেট.আইও থেকে মেকআরয়েস্ট কলের উপস্থিত রয়েছে।


4
হ্যালো, ব্যর্থ ("কোনও নেটওয়ার্ক নয়") এবং বাতিল হওয়া অনুরোধের মধ্যে পার্থক্য করার কোনও উপায় আছে কি?
অঙ্কুর

4
এই স্থিতিটি XMLHttpRequest স্থিতি হিসাবে নথিভুক্ত করা হয়েছে। অবশ্যই এটি কোনও পোস্টের স্থিতি নয়, তবে এটি নথিভুক্ত। w3.org/TR/XMLHttpRequest/#the-status-attribute আরও তথ্যের জন্য মার্ক অ্যামেরির প্রতিক্রিয়া দেখুন।
ফ্রেডেরিক

5

ডকুমেন্টেশন থেকে http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute এর অর্থ যে কোনও জায়গায় যাওয়ার আগে একটি অনুরোধ বাতিল করা হয়েছিল


4
এটি তালিকাভুক্ত কয়েকটি সম্ভাব্য অর্থগুলির মধ্যে একটি।
মার্ক আমেরিকা

4

এটি একটি পুরানো পোস্ট জানি। কিন্তু এই সমস্যাগুলি এখনও বিদ্যমান।

এই বিষয়টিতে আমার কিছু ফলাফল এখানে রয়েছে, যা মোটামুটিভাবে ব্যাখ্যা করা হয়েছে।

"স্থিতি" 0 এর অর্থ XMLHttpRequest অনুমান অনুসারে 3 টি জিনিসের একটির মধ্যে রয়েছে:

  • ডিএনএস নামের রেজোলিউশন ব্যর্থ হয়েছে (এটি উদাহরণস্বরূপ যখন নেটওয়ার্ক প্লাগটি টানা হয়)

  • সার্ভার উত্তর দেয় নি (ওরফে অ্যাক্সেসযোগ্য বা আনুষঙ্গিক)

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

আপনি যদি আরও যেতে চান তবে এক্সএমএলএইচটিপিআরকোয়েস্টের অভ্যন্তরের গভীরে ডুব দিন। আমি প্রস্তাব দিচ্ছি যে রেডি-স্টেট আপডেট সিকোয়েন্সটি পড়ুন ([0,1,2,3,4] হ'ল স্বাভাবিক ক্রম, [0,1,4] 0 স্ট্যাটাসের সাথে সঙ্গতিপূর্ণ, [0,1,2,4] মানে কোনও সামগ্রী নেই প্রেরিত যা ত্রুটি হতে পারে বা নাও হতে পারে)। আপনি বিশদগুলি বিশদটি জানতে xhr (অনডিস্টেটেচেন্জ, অনবার্ট, অনিয়ার, অনটাইমআউট) এ সংযুক্ত করতেও পারেন may

স্পেক থেকে ( এক্সএইচআর লিভিং স্পেক ):

const unsigned short UNSENT = 0;
const unsigned short OPENED = 1;
const unsigned short HEADERS_RECEIVED = 2;
const unsigned short LOADING = 3;
const unsigned short DONE = 4;

4
এখানে আপনার তালিকার সমস্ত সম্ভাব্য কারণ সঠিক, তবে আপনার তালিকাটি সম্পূর্ণ নয়। উদাহরণস্বরূপ, আপনি আপনার উত্তরের সময়সীমগুলি, অসীম পুনর্নির্দেশের লুপগুলি এবং অন্যান্য কারণগুলি হারিয়েছেন । তবে নতুন জীবিত এক্সএইচআর স্পেকের পয়েন্টারটি কার্যকর; পুরানো ডাব্লু 3 এর পরিবর্তে আমার উত্তরটি আপডেট করা উচিত।
মার্ক অ্যামেরি

0

আইওএস 9-এর পর থেকে আপনাকে আপনার তথ্য.প্লেস্ট ফাইলটিতে "অ্যাপ ট্রান্সপোর্ট সিকিউরিটি সেটিংস" যুক্ত করতে হবে এবং নিরাপদ এইচটিটিপি ওয়েব পরিষেবাতে অনুরোধ করার আগে "স্বেচ্ছাসেবীর লোডের মঞ্জুরি দিন" মঞ্জুরি দেওয়া উচিত। আমার এক অ্যাপে আমার এই সমস্যাটি ছিল had


-1

হ্যাঁ, কিছু কীভাবে অজ্যাক্স কলটি বাতিল করে দেওয়া হয়েছিল। কারণ অনুসরণ করা হতে পারে।

  1. এজ্যাক্স অনুরোধ শেষ হওয়ার আগে, ব্যবহারকারী অন্য পৃষ্ঠায় নেভিগেট করেছেন।
  2. আজাক্স অনুরোধের সময়সীমা শেষ হয়েছে।
  3. সার্ভার কোনও প্রতিক্রিয়া ফিরিয়ে দিতে সক্ষম নয়।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.