তো, জেএসএনপি বা করস? [বন্ধ]


111

আমার ওয়েবএপিআই ইন্ট্রানেট পরিবেশে মোতায়েন করা হয়েছিল । তার অর্থ সুরক্ষা আমার উদ্বেগ ছিল না।

দেখে মনে হয় যে সিওআরএস ক্লায়েন্টের সাথে অনেক বেশি বন্ধুত্বপূর্ণ এবং কার্যকর করা সহজ

অন্য কোন উদ্বেগ আমি মিস করেছি?

উত্তর:


144

এটি একটি বিস্তৃত প্রশ্ন এবং এটি নিজেই একটি উইকিকে ওয়ারেন্ট দিতে পারে। দুটি সম্পর্কে গুগলেও বেশ কিছুটা রয়েছে তবে আমি মনে করি আমি কয়েকটি মূল পয়েন্ট হিট করতে পারি।

  • আপনার সার্ভারগুলিতে যদি আপনার কেবল পঠনযোগ্য এজাক্স ইন্টারফেসের প্রয়োজন হয় এবং আপনাকে IE <= 9, অপেরা <12, বা ফায়ারফক্স <3.5 বা অন্যান্য বিভিন্ন পুরানো বা অস্পষ্ট ব্রাউজারগুলি সমর্থন করতে হবে, জেএসএনপি ব্যবহার করুন। আইই 8 এবং আইই 9 বাছাই করসকে সমর্থন করে তবে সমস্যা আছে, নীচের প্রথম মন্তব্যে লিঙ্কটি দেখুন।
  • অন্যদিকে, আপনার ওয়েব এপিআই যদি স্রেফ পড়ার (অর্থাত্ জিইটি) পরিবর্তে পঠন / লেখার (যেমন সম্পূর্ণ আরএসটি বা কেবল পোষ্ট / জিইটি) হয় তবে জেএসএনপি আউট। সিওআরএস ব্যবহার করুন। জেএসএনপি সহজাতভাবে পঠনযোগ্য।

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

আপনি যদি jQuery ব্যবহার করছেন তবে আমি নিশ্চিত নই আপনি কোথায় এই ধারণাটি নিয়ে আসছেন যে CORS " ক্লায়েন্টের সাথে অনেক বেশি বন্ধুত্বপূর্ণ এবং কার্যকর করা সহজ "। Https://gist.github.com/3131951 দেখুন । jQuery JsonP- এর বিশদ বিমূর্ত করে এবং আপনি কোন প্রযুক্তি ব্যবহার করছেন তার উপর নির্ভর করে CORS আপনার সার্ভার-সাইডে চাপিয়ে দেওয়ার জন্য কিছুটা জটিল হতে পারে।

আমি সম্প্রতি একটি ওয়েব অ্যাপ্লিকেশন বিকাশ করেছি, jquery এবং backbone.js ব্যবহার করে যা আমাদের নিয়ন্ত্রণ করা বিভিন্ন ক্রস-ডোমেন ওয়েব পরিষেবা থেকে পড়ে এবং CORS এর পরিবর্তে জসন-পি ব্যবহার করে শেষ হয়েছিল কারণ আমাদের আইই 7 সমর্থন করা দরকার এবং এটি কিছুটা সহজ ছিল on সার্ভার সাইড (আমরা জ্যাঙ্গো ডাব্লু / জ্যাঙ্গোআরেস্টফ্রেমওয়ার্ক চালাচ্ছি), এবং ক্লায়েন্টের পাশের জ্যুচুরির সাথে কার্যত একই।


3
আপনি যদি আইই
জ্যামিবারো

আপনার উত্তরের সারাংশটি খুব সহায়ক, ধন্যবাদ!
এমভিসিডিএস

আমি যা বুঝতে পেরেছি তা হ'ল JSONP আপনাকে ক্লায়েন্ট সাইড এবং CORS এ পরিচালনা করতে হবে যা আপনাকে সার্ভারের পাশে পরিচালনা করতে হবে। সঠিক?
ঝরছে

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

45

আপনি সুন্দর জায়গা। যদি আপনি লিগ্যাসি ব্রাউজারগুলি সমর্থন না করেন (6+ বছর আগে প্রকাশিত) তবে আমি অবশ্যই CORS এর সাথে যেতে চাই।

CORS প্রয়োগ করা আরও সহজ, যদি আপনার এপিআই ইতিমধ্যে জেএসওএনপি বা সিওআরএসকে সমর্থন না করে তবে প্রতিক্রিয়াগুলির মূল সংশোধন করার চেয়ে কয়েকটি স্ট্যাটিক শিরোনাম যুক্ত করা আরও সহজ।

এছাড়াও সিওআরএস ব্যবহার করে অনুরোধগুলি ক্যাশে করা সহজ। প্রতিটি জেএসএনপি অনুরোধ মেমক্যাচ করা সামগ্রী সহ গতিশীল হওয়া দরকার।

জেএসএনপি এখনও একটি স্ক্রিপ্ট ট্যাগ, সুতরাং এটি কিছু স্তরের সিঙ্ক্রোনাস আচরণের কারণ ঘটবে তা বিবেচনা করে না। কর্স না।

জেএসএনপি কেবল একটি জিইটি হতে পারে। এবং সিওআরএসের মতো আপনি যে কোনও পদ্ধতি ব্যবহার করতে পারেন।


3
আমি "সিঙ্ক্রোনাস আচরণ" তথ্যকে প্রশংসা করি।
জুয়ান ল্যানাস

আমি বিশ্বাস করি আপনি একটি অ্যাসিঙ্ক ফ্যাশনে স্ক্রিপ্ট ডাউনলোড করতে পারেন। জিক্যুরি এই এজ্যাক্স অনুরোধে এই প্যারামিটারটি সরবরাহ করে। আমি নিশ্চিত না যে এটি জসোনপের পক্ষে কাজ করে কিনা। api.jquery.com/jquery.ajax
ইরান otzap

11

সর্বশেষে তবে আপনি যদি jQuery v1.x ব্যবহার করেন তবে তা বিবেচনা করুন errorএবং complete(বা আরও ভাল failএবং always) হ্যান্ডলারগুলি এখনও কিছু সাধারণ পরিস্থিতিতে (যেমন নেটওয়ার্ক ত্রুটি) জেএসএনপি অনুরোধের জন্য ডাকা হয় নি। অবশ্যই ওয়ার্কআরউন্ডস রয়েছে (টাইমআউট সেটিং, জিকুয়ারি-জেএসএনপি প্লাগইন), তবে আমি সিওআরএসকে কম বিরক্তিকর মনে করি, বিশেষত যখন ক্রস-ডোমেন অনুরোধগুলি কেবলমাত্র মোবাইল ডিভাইসগুলি (যেমন হাইব্রিড অ্যাপ্লিকেশনগুলি) থেকে আসে তবে আপনাকে অশুভ ব্রাউজারগুলির জন্য সমর্থনের প্রয়োজন হবে না।


1
কলব্যাকের তথ্যের জন্য +1
স্লেজিম্বো

1

স্প্রিং ডকুমেন্টেশন অনুসারে, জেএসএনপি হ্যাক এবং ক্রস অরিজিন রিসোর্স শেয়ারিংয়ের উপযুক্ত সমাধান নয়। সুতরাং সুরক্ষা যদি আপনার উদ্বেগ না করে থাকে তবে কেবল আপনার সার্ভারে আপনার ডোমেন উত্সটি পরীক্ষা করুন এবং অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স প্রতিক্রিয়া শিরোনাম যুক্ত করুন।


-1

আমাদের ওয়েব এপিআই উইন্ডোজ প্রমাণীকরণের সাথে সাফারি (আইওএস 9.1) এ কাজ করছে না। এটি সাফারি + আইওএস 8.4 এর সাথে কাজ করছিল। আমরা যখন JSONP এ পরিবর্তন করেছি তখন সাফারি আবার কাজ শুরু করে। পরীক্ষা করে দেখুন এই লিঙ্কে আরও তথ্যের জন্য।


এটিও একটি ভাল নিবন্ধ - blog.algolia.com/jsonp-still-mandtory
অনুপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.