উত্তর:
এটি একটি বিস্তৃত প্রশ্ন এবং এটি নিজেই একটি উইকিকে ওয়ারেন্ট দিতে পারে। দুটি সম্পর্কে গুগলেও বেশ কিছুটা রয়েছে তবে আমি মনে করি আমি কয়েকটি মূল পয়েন্ট হিট করতে পারি।
যদি এগুলির দুটিই উদ্বেগজনক না হয় তবে আমি আপনার কাছে সবচেয়ে সহজ বা সর্বাধিক পরিচিত যাই হোক না কেন তা নিয়ে যাব। যদি এটি কোনও টসআপ হয় তবে সিআরএস চেষ্টা করুন, যেহেতু এটি আরও "আধুনিক" সমাধান এবং জেএসএনপি হ্যাক বেশি, ক্রস-ডোমেন বিধিনিষেধগুলিকে বাইপাস করার জন্য স্ক্রিপ্টগুলিতে ডেটা পরিবর্তন করে। CORS তবে সাধারণত আরও সার্ভার-সাইড কনফিগারেশন প্রয়োজন।
আপনি যদি jQuery ব্যবহার করছেন তবে আমি নিশ্চিত নই আপনি কোথায় এই ধারণাটি নিয়ে আসছেন যে CORS " ক্লায়েন্টের সাথে অনেক বেশি বন্ধুত্বপূর্ণ এবং কার্যকর করা সহজ "। Https://gist.github.com/3131951 দেখুন । jQuery JsonP- এর বিশদ বিমূর্ত করে এবং আপনি কোন প্রযুক্তি ব্যবহার করছেন তার উপর নির্ভর করে CORS আপনার সার্ভার-সাইডে চাপিয়ে দেওয়ার জন্য কিছুটা জটিল হতে পারে।
আমি সম্প্রতি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করেছি, jquery এবং backbone.js ব্যবহার করে যা আমাদের নিয়ন্ত্রণ করা বিভিন্ন ক্রস-ডোমেন ওয়েব পরিষেবা থেকে পড়ে এবং CORS এর পরিবর্তে জসন-পি ব্যবহার করে শেষ হয়েছিল কারণ আমাদের আইই 7 সমর্থন করা দরকার এবং এটি কিছুটা সহজ ছিল on সার্ভার সাইড (আমরা জ্যাঙ্গো ডাব্লু / জ্যাঙ্গোআরেস্টফ্রেমওয়ার্ক চালাচ্ছি), এবং ক্লায়েন্টের পাশের জ্যুচুরির সাথে কার্যত একই।
আপনি সুন্দর জায়গা। যদি আপনি লিগ্যাসি ব্রাউজারগুলি সমর্থন না করেন (6+ বছর আগে প্রকাশিত) তবে আমি অবশ্যই CORS এর সাথে যেতে চাই।
CORS প্রয়োগ করা আরও সহজ, যদি আপনার এপিআই ইতিমধ্যে জেএসওএনপি বা সিওআরএসকে সমর্থন না করে তবে প্রতিক্রিয়াগুলির মূল সংশোধন করার চেয়ে কয়েকটি স্ট্যাটিক শিরোনাম যুক্ত করা আরও সহজ।
এছাড়াও সিওআরএস ব্যবহার করে অনুরোধগুলি ক্যাশে করা সহজ। প্রতিটি জেএসএনপি অনুরোধ মেমক্যাচ করা সামগ্রী সহ গতিশীল হওয়া দরকার।
জেএসএনপি এখনও একটি স্ক্রিপ্ট ট্যাগ, সুতরাং এটি কিছু স্তরের সিঙ্ক্রোনাস আচরণের কারণ ঘটবে তা বিবেচনা করে না। কর্স না।
জেএসএনপি কেবল একটি জিইটি হতে পারে। এবং সিওআরএসের মতো আপনি যে কোনও পদ্ধতি ব্যবহার করতে পারেন।
সর্বশেষে তবে আপনি যদি jQuery v1.x ব্যবহার করেন তবে তা বিবেচনা করুন error
এবং complete
(বা আরও ভাল fail
এবং always
) হ্যান্ডলারগুলি এখনও কিছু সাধারণ পরিস্থিতিতে (যেমন নেটওয়ার্ক ত্রুটি) জেএসএনপি অনুরোধের জন্য ডাকা হয় নি। অবশ্যই ওয়ার্কআরউন্ডস রয়েছে (টাইমআউট সেটিং, জিকুয়ারি-জেএসএনপি প্লাগইন), তবে আমি সিওআরএসকে কম বিরক্তিকর মনে করি, বিশেষত যখন ক্রস-ডোমেন অনুরোধগুলি কেবলমাত্র মোবাইল ডিভাইসগুলি (যেমন হাইব্রিড অ্যাপ্লিকেশনগুলি) থেকে আসে তবে আপনাকে অশুভ ব্রাউজারগুলির জন্য সমর্থনের প্রয়োজন হবে না।
আমাদের ওয়েব এপিআই উইন্ডোজ প্রমাণীকরণের সাথে সাফারি (আইওএস 9.1) এ কাজ করছে না। এটি সাফারি + আইওএস 8.4 এর সাথে কাজ করছিল। আমরা যখন JSONP এ পরিবর্তন করেছি তখন সাফারি আবার কাজ শুরু করে। পরীক্ষা করে দেখুন এই লিঙ্কে আরও তথ্যের জন্য।