উত্তর:
আনয়ন এবং অ্যাকজিওস কার্যক্ষমতায় খুব একই রকম, তবে আরও পিছনের সামঞ্জস্যের জন্য অ্যাক্সিয়োস আরও ভাল কাজ করে বলে মনে হচ্ছে (আইই 11 তে আনতে হবে উদাহরণস্বরূপ, এই পোস্টটি দেখুন )
এছাড়াও, আপনি যদি জেএসওন অনুরোধগুলির সাথে কাজ করেন তবে নীচে কিছু পার্থক্য রয়েছে যার সাথে আমি হোঁচট খেয়েছি।
JSON পোস্টের অনুরোধটি আনুন
let url = 'https://someurl.com';
let options = {
method: 'POST',
mode: 'cors',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
body: JSON.stringify({
property_one: value_one,
property_two: value_two
})
};
let response = await fetch(url, options);
let responseOK = response && response.ok;
if (responseOK) {
let data = await response.json();
// do something with data
}
এক্সিয়াস জেএসওএন পোস্টের অনুরোধ
let url = 'https://someurl.com';
let options = {
method: 'POST',
url: url,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json;charset=UTF-8'
},
data: {
property_one: value_one,
property_two: value_two
}
};
let response = await axios(options);
let responseOK = response && response.status === 200 && response.statusText === 'OK';
if (responseOK) {
let data = await response.data;
// do something with data
}
তাই:
আশাকরি এটা সাহায্য করবে.
Axios request is ok when status is 200 and statusText is 'OK'
201 বা 204 এর মতো 2xx রেঞ্জের অন্যান্য httpstatus সম্পর্কে কী বলা যায়?
তারা হ'ল এইচটিটিপি অনুরোধ লাইব্রেরি ...
আমি একই সন্দেহের সাথে শেষ করছি তবে এই পোস্টের টেবিলটি আমাকে সাথে করে দেয় isomorphic-fetch
। যা fetch
তবে নোডজেএস-এর সাথে কাজ করে।
http://andrewhfarmer.com/ajax-libraries/
উপরের লিঙ্কটি মারা গেছে একই টেবিলটি এখানে আছে: https://www.javascripttstuff.com/ajax-libraries/
fetch
হিসাবে সংজ্ঞায়িত করেছে (এর অর্থ আপনি কেবল এটি ব্যবহার করতে পারেন - টেবিল উত্স অনুসারে কোনও গ্রন্থাগার অন্তর্ভুক্ত করার দরকার নেই ), যখন কিছু প্ল্যাটফর্মগুলিতে (বিশেষত আইআই এর সমস্ত সংস্করণে) বাস্তবায়ন করা হয় না , যার জন্য আপনাকে একটি সরবরাহ সরবরাহ করতে হবে বাহ্যিক পলিফিল যাইহোক। fetch
timeout
(যা খুব অদ্ভুত) এই বুনিয়াদি কার্যকারিতা বাস্তবায়নের জন্য আমাদের একটি পৃথক মডিউল ব্যবহার করতে হবে।
গিটহাবের মোজাব্রিস্কির মতে :
সামগ্রিকভাবে তারা খুব অনুরূপ। অ্যাক্সিসের কিছু সুবিধা:
ট্রান্সফর্মারস: একটি অনুরোধ করার আগে বা প্রতিক্রিয়া পাওয়ার পরে ডেটাতে ট্রান্সফর্মগুলি সম্পাদন করার অনুমতি দিন
ইন্টারসেপ্টর: আপনাকে অনুরোধ বা প্রতিক্রিয়া পুরোপুরি পরিবর্তন করতে দেয় (পাশাপাশি শিরোনাম)। এছাড়াও, একটি অনুরোধ করার আগে বা প্রতিশ্রুতি নিষ্পত্তি হওয়ার আগে অ্যাসিঙ্ক অপারেশনগুলি সম্পাদন করুন
অন্তর্নির্মিত এক্সএসআরএফ সুরক্ষা
দয়া করে ব্রাউজার সমর্থন অ্যাক্সিয়োস পরীক্ষা করুন
আমি মনে করি আপনার অক্ষ ব্যবহার করা উচিত।
ফেচ এপিআই এবং অ্যাক্সিয়াস এপিআইয়ের মধ্যে আরও একটি বড় পার্থক্য
অ্যাকজিওস হ'ল এককভাবে তৃতীয় পক্ষের প্যাকেজ যা এনপিএম ব্যবহার করে সহজেই একটি প্রতিক্রিয়া প্রকল্পে ইনস্টল করা যায়।
আপনি উল্লিখিত অন্য বিকল্পটি আনার ফাংশন। অ্যাকজিওস থেকে ভিন্ন, fetch()
বেশিরভাগ আধুনিক ব্রাউজারে তৈরি। আনার সাথে আপনার তৃতীয় পক্ষের প্যাকেজ ইনস্টল করার দরকার নেই।
সুতরাং এটি fetch()
আপনার উপর নির্ভর করে আপনি কীভাবে করছেন তা জানেন না বা কেবল এক্সিয়াসটি ব্যবহার করুন যা আমার মতে আরও সোজা।
তদতিরিক্ত ... আমি আমার পরীক্ষায় বিভিন্ন লিবাসের সাথে খেলছিলাম এবং তাদের 4XX অনুরোধগুলির পৃথক হ্যান্ডলিং লক্ষ্য করেছি। এই ক্ষেত্রে আমার পরীক্ষা 400 জবাব দিয়ে একটি জসন বস্তু দেয় returns 3 টি জনপ্রিয় লিবস এইভাবে প্রতিক্রিয়াটি পরিচালনা করে:
// request-promise-native
const body = request({ url: url, json: true })
const res = await t.throws(body);
console.log(res.error)
// node-fetch
const body = await fetch(url)
console.log(await body.json())
// Axios
const body = axios.get(url)
const res = await t.throws(body);
console.log(res.response.data)
আগ্রহের বিষয় যে request-promise-native
এবং axios
4xx প্রতিক্রিয়া উপর নিক্ষেপ করার সময় node-fetch
না। এছাড়াও fetch
JSON পার্সিং জন্য একটি প্রতিশ্রুতি ব্যবহার করে।
.throws
নিক্ষিপ্ত ত্রুটিগুলি পরীক্ষা করার একটি পদ্ধতি থাকে। এই ক্ষেত্রে আমি আল 3 লিবস থেকে প্রত্যাখ্যান পরীক্ষা করেছিলাম এবং ফিরে আসা ডেটার মধ্যে পার্থক্য লক্ষ্য করেছি।
অক্ষের উপকারিতা: