tl; dr - প্রাসঙ্গিক অংশগুলি সন্ধান করা আরও সহজ করার জন্য উত্তরের একটি সংক্ষিপ্তসার এবং উত্তরের শিরোনাম রয়েছে। সবকিছু পড়া যদিও যেমন বুঝতে জন্য দরকারী পটভূমি প্রদান করে সুপারিশ করা হয় কেন যে এইজন্য কিভাবে তোলে কিভাবে বিভিন্ন পরিস্থিতিতে সহজ প্রযোজ্য হয়।
একই উত্স নীতি সম্পর্কে
এটি একই উত্স নীতি । এটি ব্রাউজারগুলির দ্বারা প্রয়োগ করা একটি সুরক্ষা বৈশিষ্ট্য।
আপনার বিশেষ ক্ষেত্রে এটি XMLHttpRequest এর জন্য কীভাবে প্রয়োগ করা হচ্ছে তা দেখানো হচ্ছে (এবং আপনি আনতে গেলে আপনি অভিন্ন ফলাফল পাবেন), তবে এটি অন্যান্য জিনিসগুলিতেও প্রযোজ্য (যেমন কোনও ছবিতে একটি <canvas>
লোড হওয়া ডকুমেন্ট বা একটিতে লোড হওয়া ডকুমেন্ট <iframe>
) কেবল মাত্র কিছুটা আলাদা বাস্তবায়ন।
(অদ্ভুতভাবে, এটি সিএসএস হরফগুলিতেও প্রযোজ্য, তবে এটি কারণগুলি খুঁজে পেয়েছে যে ডিআরএম-এর উপর জোর দেওয়া হয়েছিল এবং একই সুরক্ষা নীতিটি সাধারণত যে বিষয়গুলি অন্তর্ভুক্ত করে সেগুলির জন্য নয়))
এসওপি-র প্রয়োজনীয়তার প্রমাণ দেয় এমন স্ট্যান্ডার্ড দৃশ্যাবলী তিনটি অক্ষর দিয়ে প্রদর্শিত হতে পারে :
- অ্যালিস একটি ওয়েব ব্রাউজারযুক্ত ব্যক্তি
- বব একটি ওয়েবসাইট চালায় (
https://www.[website].com/
আপনার উদাহরণে)
- ম্যালরি একটি ওয়েবসাইট চালায় (
http://localhost:4300
আপনার উদাহরণে)
অ্যালিস বব এর সাইটে লগ ইন এবং সেখানে কিছু গোপনীয় তথ্য আছে। সম্ভবত এটি কোনও সংস্থা ইন্ট্রনেট (কেবল ল্যানের ব্রাউজারগুলিতে অ্যাক্সেসযোগ্য), বা তার অনলাইন ব্যাংকিং (কেবলমাত্র একটি কুকির সাথে অ্যাক্সেসযোগ্য যা আপনি ব্যবহারকারীর নাম এবং পাসওয়ার্ড দেওয়ার পরে পাবেন)।
অ্যালিস ম্যালরির ওয়েবসাইট পরিদর্শন করে যার কিছু জাভাস্ক্রিপ্ট রয়েছে যার কারণে অ্যালিসের ব্রাউজার ববের ওয়েবসাইটে HTTP অনুরোধ করতে পারে (তার আইপি ঠিকানা থেকে তার কুকিজ ইত্যাদি)। এটি ব্যবহার XMLHttpRequest
ও পড়ার মতো সহজ হতে পারে responseText
।
ব্রাউজারের একই অরিজিন নীতি যে জাভাস্ক্রিপ্টকে বব ওয়েবসাইটের দ্বারা ফিরিয়ে দেওয়া ডেটা (যা বব এবং অ্যালিস ম্যালরি অ্যাক্সেস করতে চান না) পড়তে বাধা দেয়। (নোট যে আপনার, উদাহরণস্বরূপ, একটি চিত্র একটি ব্যবহার প্রদর্শন করতে পারেন <img>
উদ্ভব জুড়ে উপাদান ইমেজ বিষয়বস্তু জাভাস্ক্রিপ্ট (অথবা ম্যালরি উন্মুক্ত নয় কারণ) ... যদি না আপনি মিশ্রণ মধ্যে ক্যানভাস যে ক্ষেত্রে আপনি নিক্ষেপ করবে একটি একই বংশোদ্ভূত উৎপন্ন লঙ্ঘন ত্রুটি)।
কেন একই অরিজিন নীতি প্রযোজ্য যখন আপনি মনে করেন না এটি করা উচিত
যে কোনও ইউআরএল-এর জন্য এটি সম্ভব যে এসওপি প্রয়োজন হয় না। এই ক্ষেত্রে যেখানে বেশ কয়েকটি সাধারণ পরিস্থিতি হ'ল:
- অ্যালিস, বব এবং ম্যালরি একই ব্যক্তি।
- বব সম্পূর্ণ জনসাধারণের তথ্য সরবরাহ করছে
… তবে উপরের যে কোনও একটি সত্য কিনা ব্রাউজারটি জানার উপায় নেই, সুতরাং বিশ্বাস স্বয়ংক্রিয় নয় এবং এসওপি প্রয়োগ করা হয়েছে। ব্রাউজারটি কোনও অন্য ওয়েবসাইটে দেওয়া ডেটা দেবে তার আগে স্পষ্টভাবে অনুমতি দিতে হবে।
কেন একই উত্স নীতিটি কেবল ওয়েব পৃষ্ঠায় জাভাস্ক্রিপ্টে প্রয়োগ হয়
ব্রাউজার এক্সটেনশানস *
, ব্রাউজার বিকাশকারী সরঞ্জামগুলির নেটওয়ার্ক ট্যাব এবং পোস্টম্যানের মতো অ্যাপ্লিকেশন ইনস্টলড সফ্টওয়্যার। আপনি যে আলাদা ওয়েবসাইটটি দেখেছেন কেবল সে কারণে তারা কোনও ওয়েবসাইট থেকে আলাদা ওয়েবসাইটের অন্তর্ভুক্ত জাভাস্ক্রিপ্টে ডেটা পাঠাচ্ছে না । সফ্টওয়্যার ইনস্টল করতে সাধারণত আরও সচেতন পছন্দ লাগে।
তৃতীয় পক্ষ নেই (ম্যালরি) যাকে ঝুঁকি হিসাবে বিবেচনা করা হয়।
*
ক্রস-অরিজিন সমস্যাগুলি এড়াতে সাবধানতার সাথে ব্রাউজারের এক্সটেনশানগুলি লিখতে হবে। উদাহরণস্বরূপ Chrome ডকুমেন্টেশন দেখুন ।
আপনি জেএস দিয়ে না পড়েই কেন পৃষ্ঠায় ডেটা প্রদর্শন করতে পারেন
এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে ম্যালরির সাইট কোনও ব্রাউজারকে তৃতীয় পক্ষের থেকে ডেটা আনতে এবং এটি প্রদর্শিত করতে পারে (উদাহরণস্বরূপ <img>
কোনও চিত্র প্রদর্শনের জন্য কোনও উপাদান যুক্ত করে )। ম্যালরির জাভাস্ক্রিপ্টের পক্ষে সেই উত্সটিতে থাকা ডেটা পড়া সম্ভব নয় যদিও কেবলমাত্র এলিসের ব্রাউজার এবং ববসের সার্ভার এটি করতে পারে, তাই এটি এখনও সুরক্ষিত।
CORS
Access-Control-Allow-Origin
HTTP- র প্রতিক্রিয়া হেডারের মধ্যে ত্রুটি বার্তা অংশ উল্লেখ করা CORS মান যা বব স্পষ্টভাবে অ্যালিসের ব্রাউজারের মাধ্যমে ডেটা অ্যাক্সেস করতে ম্যালরি এর সাইটের করার অনুমতি দেওয়ার মঞ্জুরি দেয়।
একটি মৌলিক বাস্তবায়নের অন্তর্ভুক্ত হবে:
Access-Control-Allow-Origin: *
… প্রতিক্রিয়া শিরোনামে কোনও ওয়েবসাইটকে ডেটা পড়ার অনুমতি দেয়।
Access-Control-Allow-Origin: http://example.com/
… কেবলমাত্র একটি নির্দিষ্ট সাইটকে এটি অ্যাক্সেস করার অনুমতি দেবে এবং বব Origin
অনুরোধ শিরোনামের ভিত্তিতে একাধিক, কিন্তু সমস্তগুলি নয়, সাইটগুলিকে এটি অ্যাক্সেস করার অনুমতি দিয়ে গতিশীলভাবে এটি তৈরি করতে পারে।
বব কীভাবে প্রতিক্রিয়া শিরোনাম সেট করে তার নির্দিষ্টকরণ ববের এইচটিটিপি সার্ভার এবং / অথবা সার্ভার-সাইড প্রোগ্রামিং ভাষার উপর নির্ভর করে। নেই বিভিন্ন সাধারণ কনফিগারেশনের জন্য গাইড একটি সংগ্রহ যে শক্তি সাহায্যের।
নোট: কিছু অনুরোধগুলি জটিল এবং একটি প্রিফলাইট বিকল্পগুলি অনুরোধ প্রেরণ করুন যা ব্রাউজারটি জিইটি / পোস্ট / পুট / জেএস যে যা অনুরোধ করতে চায় তা প্রেরণ করার আগে সার্ভারকে তার প্রতিক্রিয়া জানাতে হবে। কেবল Access-Control-Allow-Origin
নির্দিষ্ট ইউআরএলগুলিতে যুক্ত হওয়া সিওআরএসের প্রয়োগগুলি প্রায়শই এর দ্বারা বিভক্ত হয়ে যায়।
স্পষ্টতই সিওআরএসের মাধ্যমে অনুমতি দেওয়া হ'ল বব কেবল তখনই তা করবে:
- তথ্য ব্যক্তিগত বা না ছিল
- ম্যালরি বিশ্বাসযোগ্য ছিল
তবে আমি বব নই!
ম্যালরির এই শিরোনামটি যুক্ত করার জন্য কোনও মানক ব্যবস্থা নেই কারণ এটি ববয়ের ওয়েবসাইট থেকে আসতে হবে, যা সে নিয়ন্ত্রণ করে না।
বব যদি সর্বজনীন এপিআই চালাচ্ছে তবে সিওআরএস চালু করার জন্য কোনও পদ্ধতি থাকতে পারে (সম্ভবত কোনও নির্দিষ্টভাবে অনুরোধটি ফর্ম্যাট করে, বা ববরের সাইটের জন্য বিকাশকারী পোর্টাল সাইটে লগ ইন করার পরে একটি কনফিগার বিকল্প)। এটি বব দ্বারা বাস্তবায়িত একটি প্রক্রিয়া হতে হবে। ম্যালরি ববয়ের সাইটে ডকুমেন্টেশন পড়তে পারে যাতে কিছু পাওয়া যায় কিনা তা দেখতে, বা তিনি ববয়ের সাথে কথা বলতে পারেন এবং তাকে সিওআর প্রয়োগ করতে বলেছিলেন ask
ত্রুটি বার্তাগুলি যা "প্রিফলাইটের জন্য প্রতিক্রিয়া" উল্লেখ করে
কিছু ক্রস উত্স অনুরোধ প্রাকফ্লাইটেড হয় ।
এটি যখন ঘটে (মোটামুটি কথা বললে) আপনি ক্রস-আর্জি অনুরোধ করার চেষ্টা করেন যে:
- কুকিজের মতো শংসাপত্রগুলি অন্তর্ভুক্ত করে
- নিয়মিত এইচটিএমএল ফর্ম দিয়ে উত্পন্ন করা যায়নি (যেমন কাস্টম শিরোনাম বা কোনও সামগ্রী-প্রকার রয়েছে যা আপনি কোনও ফর্মের মধ্যে ব্যবহার করতে পারবেন না
enctype
)।
আপনি যদি সঠিকভাবে এমন কিছু করছেন যা একটি প্রিফলাইট প্রয়োজন
এইসব ক্ষেত্রে তারপর এই উত্তরটি বাকি এখনও প্রযোজ্য কিন্তু আপনি নিশ্চিত করুন যে সার্ভার preflight অনুরোধের জন্য (শুনতে পারেন যা হতে হবে করতে হবে OPTIONS
(এবং GET
, POST
বা যাই হোক না কেন আপনি পাঠাতে) সাড়া এটা করার অধিকার দিয়ে চেষ্টা এবং হয় Access-Control-Allow-Origin
হেডার কিন্তু Access-Control-Allow-Methods
এবং Access-Control-Allow-Headers
আপনার নির্দিষ্ট HTTP- র পদ্ধতি বা হেডার অনুমতি দেয়।
আপনি যদি ভুল করে একটি প্রিফলাইট ট্রিগার করছেন
কখনও কখনও লোকেরা অ্যাজাক্স অনুরোধগুলি নির্মাণ করার চেষ্টা করার সময় ভুল করে এবং কখনও কখনও এগুলি একটি প্রিফলাইটের প্রয়োজনীয়তার প্রয়োজন হয়। যদি APIটি ক্রস-অরিজিনের অনুরোধগুলিকে মঞ্জুরি দেওয়ার জন্য ডিজাইন করা হয় তবে প্রিফলাইটের প্রয়োজন এমন কোনও কিছুর প্রয়োজন হয় না, তবে এটি অ্যাক্সেস ভেঙে দিতে পারে।
এর মধ্যে সাধারণ ভুলগুলি অন্তর্ভুক্ত করে:
Access-Control-Allow-Origin
অনুরোধে এবং অন্যান্য সিওআরএস প্রতিক্রিয়া শিরোনাম লাগানোর চেষ্টা করছি । এগুলি অনুরোধের অন্তর্ভুক্ত নয়, সহায়ক কিছু করবেন না (এমন কোনও অনুমতি সিস্টেমের কী উপায় যেখানে আপনি নিজেকে অনুমতি দিতে পারেন?) এবং অবশ্যই প্রতিক্রিয়াতে উপস্থিত হতে হবে।
Content-Type: application/json
জিইটি অনুরোধে শিরোনাম লাগানোর চেষ্টা করা হচ্ছে যাতে সামগ্রীর সামগ্রী বর্ণনা করার জন্য কোনও অনুরোধের বডি নেই (সাধারণত যখন লেখক বিভ্রান্ত হন Content-Type
এবং Accept
)।
এই উভয় ক্ষেত্রেই অতিরিক্ত অনুরোধ শিরোনাম অপসারণ প্রায়শই একটি প্রিফলাইটের প্রয়োজনীয়তা এড়াতে যথেষ্ট হবে (যা সরল অনুরোধগুলিকে সমর্থন করে তবে প্রাক-আলোকিত অনুরোধগুলি সমর্থন করে না এমন APIs এর সাথে যোগাযোগ করার সময় সমস্যার সমাধান হবে)।
অস্বচ্ছ প্রতিক্রিয়া
কখনও কখনও আপনার একটি HTTP অনুরোধ করা প্রয়োজন, তবে আপনাকে প্রতিক্রিয়াটি পড়ার দরকার নেই। যেমন আপনি যদি রেকর্ডিংয়ের জন্য সার্ভারে একটি লগ বার্তা পোস্ট করছেন।
আপনি ব্যবহার করে থাকেন এপিআই (বদলে ), তারপর আপনি এটি ব্যবহার CORS চেষ্টা না কনফিগার করতে পারেন।fetch
XMLHttpRequest
দ্রষ্টব্য যে এটি আপনাকে কর্সের যা করতে হবে তার কিছু করতে দেবে না। আপনি প্রতিক্রিয়াটি পড়তে পারবেন না। আপনি একটি অনুরোধ করতে সক্ষম হবেন না যার জন্য প্রিফলাইট প্রয়োজন।
এটি আপনাকে একটি সাধারণ অনুরোধ করতে দেবে, প্রতিক্রিয়াটি দেখতে পাবে না এবং ত্রুটি বার্তাগুলি দিয়ে বিকাশকারী কনসোলটি পূরণ করবে না।
এটি কীভাবে করবেন তা যখন আপনি একটি অনুরোধ ব্যবহার করে অনুরোধ করেন fetch
এবং সিওআরএস সহ প্রতিক্রিয়া দেখার অনুমতি না পান তখন প্রদত্ত ক্রোম ত্রুটি বার্তা দ্বারা ব্যাখ্যা করা হয় :
সিওআরএস নীতি দ্বারা https://example.com/
' https://example.net
' উত্স থেকে ' ' আনতে অ্যাক্সেস অবরুদ্ধ করা হয়েছে: Access-Control-Allow-Origin
অনুরোধকৃত উত্সটিতে কোনও ' ' শিরোনাম উপস্থিত নেই। যদি কোনও অস্বচ্ছ প্রতিক্রিয়া আপনার প্রয়োজনগুলি সরবরাহ করে তবে অনুরোধের মোডটি 'নো-কর্স' এ সেট করুন CORS অক্ষম করে রিসোর্স আনতে।
এভাবে:
fetch("http://example.com", { mode: "no-cors" });
সিওআরএসের বিকল্প
jsonp
বব জেএসওএনপি-র মতো হ্যাক ব্যবহার করে ডেটা সরবরাহ করতে পারে যা সিওআরএস আসার আগে লোকেরা ক্রস- আদি অ্যাজাক্সকে করেছিল।
এটি একটি জাভাস্ক্রিপ্ট প্রোগ্রাম আকারে ডেটা উপস্থাপিত করে কাজ করে যা ম্যালোরির পৃষ্ঠায় ডেটাটি ইনজেক্ট করে।
এটি ম্যালরির বিশ্বাস ববকে দূষিত কোড সরবরাহ না করার প্রয়োজন requires
সাধারণ থিমটি নোট করুন: ডেটা সরবরাহকারী সাইটের ব্রাউজারকে বলতে হবে যে কোনও তৃতীয় পক্ষের সাইটের ব্রাউজারে প্রেরণ করা ডেটা অ্যাক্সেস করা ঠিক আছে OK
যেহেতু জেএসএনপি <script>
কোনও জাভাস্ক্রিপ্ট প্রোগ্রাম আকারে ডেটা লোড করার জন্য একটি উপাদান যুক্ত করে যা এই পৃষ্ঠায় ইতিমধ্যে একটি ফাংশন বলে, তাই ইউএসএলতে জেএসএনপি কৌশল ব্যবহারের চেষ্টা করা হবে যা জেএসওএন ফেরত দেয় - সাধারণত একটি সিওআরবি ত্রুটি সহ - কারণ জেএসএনপি জাভাস্ক্রিপ্ট নয়।
দুটি সংস্থানকে একটি একক উত্সে সরান
যদি এইচটিএমএল নথিটি জেএস চালিত হয় এবং অনুরোধ করা URL টি একই উত্সের (একই স্কিম, হোস্টনাম এবং পোর্ট ভাগ করে নেওয়ার) হয় তবে তারা একই উত্স নীতি ডিফল্টরূপে অনুমতি দেয়। সিওআরএস দরকার হয় না।
বদলি
ম্যালরি ডেটা আনার জন্য সার্ভার-সাইড কোড ব্যবহার করতে পারে (যা সে তার সার্ভার থেকে যথারীতি এইচটিটিপি-র মাধ্যমে এলিসের ব্রাউজারে যেতে পারে)।
এটি হয়:
- CORS শিরোনাম যুক্ত করুন
- প্রতিক্রিয়াটি JSONP এ রূপান্তর করুন
- এইচটিএমএল ডকুমেন্ট হিসাবে একই উত্স উপর বিদ্যমান
সেই সার্ভার-সাইড কোডটি তৃতীয় পক্ষের দ্বারা লিখিত এবং হোস্ট করা যেতে পারে (যেমন কোনও জায়গায় সিওআরএস)। এর গোপনীয়তার অন্তর্নিহিতকরণগুলি নোট করুন: তৃতীয় পক্ষ তাদের সার্ভারগুলিতে কে কী প্রক্স করে তা পর্যবেক্ষণ করতে পারে।
এটি হওয়ার জন্য ববকে কোনও অনুমতি দেওয়ার দরকার পড়েনি।
এখানে ম্যালরি এবং বব এর মধ্যে যেহেতু এখানে সুরক্ষা সম্পর্কিত কোনও প্রভাব নেই। মোলরিকে অ্যালিস বলে মনে করার এবং অ্যালিস এবং ববের মধ্যে গোপনীয় হওয়া উচিত এমন ম্যালোরিকে এমন ডেটা সরবরাহ করার জন্য ববের পক্ষে কোনও উপায় নেই।
ফলস্বরূপ, ম্যালরি জনসাধারণের ডেটা পড়ার জন্য এই কৌশলটি ব্যবহার করতে পারে ।
তবে মনে রাখবেন যে অন্য কারও ওয়েবসাইট থেকে সামগ্রী নেওয়া এবং এটি আপনার নিজের দ্বারা প্রকাশ করা কপিরাইটের লঙ্ঘন হতে পারে এবং আপনাকে আইনি পদক্ষেপের জন্য উন্মুক্ত করতে পারে।
ওয়েব অ্যাপ্লিকেশন ব্যতীত অন্য কিছু লেখা
"কেন একই উত্স নীতি কেবল একটি ওয়েব পৃষ্ঠায় জাভাস্ক্রিপ্টের জন্য প্রযোজ্য" বিভাগে উল্লিখিত হয়েছে, আপনি কোনও ওয়েবপৃষ্ঠায় জাভাস্ক্রিপ্ট না লিখে এসওপিকে এড়াতে পারবেন।
এর অর্থ এই নয় যে আপনি জাভাস্ক্রিপ্ট এবং এইচটিএমএল ব্যবহার চালিয়ে যেতে পারবেন না, তবে আপনি নোড-ওয়েবকিট বা ফোনগ্যাপের মতো কিছু অন্য পদ্ধতি ব্যবহার করে এটি বিতরণ করতে পারেন।
ব্রাউজার এক্সটেনশান
একই উত্স নীতি প্রয়োগ করার আগে ব্রাউজারের এক্সটেনশনের পক্ষে প্রতিক্রিয়ায় CORS শিরোনাম ইনজেকশন করা সম্ভব।
এগুলি বিকাশের জন্য কার্যকর হতে পারে তবে কোনও প্রোডাকশন সাইটের জন্য ব্যবহারিক নয় (আপনার সাইটের প্রতিটি ব্যবহারকারীকে তাদের ব্রাউজারের সুরক্ষা বৈশিষ্ট্যটি অক্ষম করে এমন একটি ব্রাউজার এক্সটেনশান ইনস্টল করতে জিজ্ঞাসা করা অযৌক্তিক)।
তারা কেবল সাধারণ অনুরোধগুলি (প্রিফলাইট অপশন অনুরোধগুলি পরিচালনা করার ক্ষেত্রে ব্যর্থ) দিয়ে কাজ করার ঝোঁক।
স্থানীয় বিকাশের সার্ভারের সাথে উপযুক্ত বিকাশের পরিবেশ
হওয়াই সাধারণত আরও ভাল পদ্ধতির।
অন্যান্য সুরক্ষা ঝুঁকি
নোট করুন যে এসওপি / সিওআরএস এক্সএসএস , সিএসআরএফ , বা এসকিউএল ইনজেকশন আক্রমণগুলিকে প্রশমিত করে না যা স্বতন্ত্রভাবে পরিচালনা করা দরকার।
সারসংক্ষেপ
- কিছুই আপনাকে করতে পারি না নেই আপনার ক্লায়েন্ট-সাইড কোডটি কাউকে CORS অ্যাক্সেস সক্ষম হবে অন্য সার্ভার।
- আপনি যদি সার্ভারটি নিয়ন্ত্রণ করেন তবে অনুরোধটি করা হচ্ছে: এটিতে CORS অনুমতি যুক্ত করুন।
- যদি আপনি এটি নিয়ন্ত্রণ করেন এমন ব্যক্তির সাথে বন্ধুত্বপূর্ণ হন: তাদের এতে CORS অনুমতি যুক্ত করার জন্য পান।
- এটি যদি জনসেবা হয়:
- ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট দিয়ে এটি অ্যাক্সেস সম্পর্কে তারা কী বলেন তা দেখতে তাদের এপিআই ডকুমেন্টেশন পড়ুন:
- তারা আপনাকে নির্দিষ্ট ইউআরএল ব্যবহার করতে বলতে পারে
- তারা জেএসএনপি সমর্থন করতে পারে
- তারা ক্লায়েন্ট-সাইড কোড থেকে ক্রস-অরিজিন অ্যাক্সেসকে মোটেই সমর্থন করবে না (এটি সুরক্ষার ভিত্তিতে ইচ্ছাকৃত সিদ্ধান্ত হতে পারে, বিশেষত যদি আপনাকে প্রতিটি অনুরোধে ব্যক্তিগতকৃত API কী পাস করতে হয়)।
- আপনি যে প্রিফ্লাইট অনুরোধটি প্রয়োজন নেই তা ট্রিগার করছেন না তা নিশ্চিত করুন। এআইপিআই সাধারণ অনুরোধগুলির জন্য অনুমতি দিতে পারে তবে প্রাকফ্লাইটেড অনুরোধ নয়।
- যদি উপরের কোনওটি প্রয়োগ না করে: পরিবর্তে আপনার সার্ভারের সাথে কথা বলার জন্য ব্রাউজারটি পান এবং তারপরে আপনার সার্ভারটি অন্য সার্ভার থেকে ডেটা আনতে এবং এটি পাস করে দিতে। (তৃতীয় পক্ষের হোস্টেড পরিষেবাদিগুলি রয়েছে যা আপনি ব্যবহার করতে পারেন এমন জনসমক্ষে অ্যাক্সেসযোগ্য সংস্থানগুলিতে সিওআরএস শিরোনামগুলি সংযুক্ত করে)।