javascript - এক্সএমএলএইচটিপিআরকোয়েস্ট XXX কোনও 'অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স' শিরোনাম লোড করতে পারে না




cors same-origin-policy (4)

একই উত্স নীতি সম্পর্কে

এটি একই উত্স নীতি । এটি ব্রাউজারগুলির দ্বারা প্রয়োগ করা একটি সুরক্ষা বৈশিষ্ট্য।

আপনার বিশেষ ক্ষেত্রে এটি XMLHttpRequest- এর জন্য কীভাবে প্রয়োগ করা হচ্ছে তা দেখানো হচ্ছে (এবং আপনি আনতে গেলে আপনি অভিন্ন ফলাফল পাবেন) তবে এটি অন্যান্য জিনিসগুলিতেও প্রযোজ্য (যেমন <canvas> লোড হওয়া চিত্রগুলি বা একটি <iframe> লোড করা নথি) <iframe> ), কিছুটা আলাদা বাস্তবায়ন সহ।

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

এসওপি-র প্রয়োজনীয়তার প্রমাণ দেয় এমন স্ট্যান্ডার্ড দৃশ্যাবলী তিনটি অক্ষর দিয়ে প্রদর্শিত হতে পারে:

  • অ্যালিস একটি ওয়েব ব্রাউজারযুক্ত ব্যক্তি
  • বব একটি ওয়েবসাইট চালায় ( https://www.[website].com/ আপনার উদাহরণে)
  • ম্যালরি একটি ওয়েবসাইট চালায় ( http://localhost:4300 আপনার উদাহরণের মধ্যে http://localhost:4300 )

অ্যালিস ববের সাইটে লগইন হয়েছে এবং সেখানে কিছু গোপনীয় তথ্য রয়েছে। সম্ভবত এটি কোনও সংস্থা ইন্ট্রনেট (কেবল ল্যানের ব্রাউজারগুলিতে অ্যাক্সেসযোগ্য), বা তার অনলাইন ব্যাংকিং (কেবলমাত্র একটি কুকির সাথে অ্যাক্সেসযোগ্য যা আপনি ব্যবহারকারীর নাম এবং পাসওয়ার্ড দেওয়ার পরে পাবেন)।

অ্যালিস ম্যালরির ওয়েবসাইট পরিদর্শন করে যার কিছু জাভাস্ক্রিপ্ট রয়েছে যার কারণে অ্যালিসের ব্রাউজার ববের ওয়েবসাইটে HTTP অনুরোধ করতে পারে (তার আইপি ঠিকানা থেকে তার কুকিজ ইত্যাদি)। এটি XMLHttpRequest ব্যবহার এবং responseText পাঠ্য পাঠের মতো সহজ হতে পারে।

ব্রাউজারের একই অরিজিন নীতি যে জাভাস্ক্রিপ্টকে বব ওয়েবসাইটের দ্বারা ফিরিয়ে দেওয়া ডেটা (যা বব এবং অ্যালিস ম্যালরি অ্যাক্সেস করতে চান না) পড়তে বাধা দেয়। (নোট করুন যে আপনি উদাহরণস্বরূপ, কোনও <img> উপাদানটি মূল হিসাবে ব্যবহার করে একটি চিত্র প্রদর্শন করতে পারেন কারণ চিত্রের বিষয়বস্তু জাভাস্ক্রিপ্টের (বা ম্যালরি) -এর সংস্পর্শে আসে না ... যদি না আপনি মিশ্রণে ক্যানভাস নিক্ষেপ করেন তবে আপনি যা তৈরি করতে পারবেন একই উত্স লঙ্ঘন ত্রুটি)।

কেন একই অরিজিন নীতি প্রযোজ্য যখন আপনি ভাবেন না যে এটি করা উচিত

যে কোনও ইউআরএল-এর জন্য এটি সম্ভব যে এসওপি প্রয়োজন হয় না। এই ক্ষেত্রে যেখানে বেশ কয়েকটি সাধারণ পরিস্থিতি হ'ল:

  • অ্যালিস, বব এবং ম্যালরি একই ব্যক্তি।
  • বব সম্পূর্ণ জনসাধারণের তথ্য সরবরাহ করছে

… তবে উপরের যে কোনও একটি সত্য কিনা ব্রাউজারটি জানার উপায় নেই, সুতরাং বিশ্বাস স্বয়ংক্রিয় নয় এবং এসওপি প্রয়োগ করা হয়েছে। ব্রাউজারটি কোনও অন্য ওয়েবসাইটে দেওয়া ডেটা দেবে তার আগে স্পষ্টভাবে অনুমতি দিতে হবে।

একই উত্স নীতি কেন কেবল ওয়েব পৃষ্ঠায় জাভাস্ক্রিপ্টে প্রয়োগ হয়

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

তৃতীয় পক্ষ নেই (ম্যালরি) যাকে ঝুঁকি হিসাবে বিবেচনা করা হয়।

আপনি জেএস দিয়ে না পড়েই কেন পৃষ্ঠায় ডেটা প্রদর্শন করতে পারেন

এমন অনেকগুলি পরিস্থিতি রয়েছে যেখানে ম্যালরির সাইটটি কোনও ব্রাউজারকে তৃতীয় পক্ষের থেকে ডেটা আনতে এবং এটি প্রদর্শিত করতে পারে (উদাহরণস্বরূপ একটি চিত্র প্রদর্শনের জন্য <img> উপাদান যুক্ত করে)। ম্যালোরির জাভাস্ক্রিপ্টের পক্ষে সেই উত্সটিতে থাকা ডেটা পড়া সম্ভব নয় যদিও কেবলমাত্র অ্যালিসের ব্রাউজার এবং ববসের সার্ভার এটি করতে পারে, তাই এটি এখনও সুরক্ষিত।

CORS

ত্রুটি বার্তায় উল্লিখিত Access-Control-Allow-Origin CORS স্ট্যান্ডার্ডের একটি অংশ যা বব স্পষ্টভাবে ম্যালরির সাইটটিকে অ্যালিসের ব্রাউজারের মাধ্যমে ডেটা অ্যাক্সেস করার অনুমতি দেয়।

একটি মৌলিক বাস্তবায়নের অন্তর্ভুক্ত হবে:

Access-Control-Allow-Origin: *

… কোনও ওয়েবসাইটকে ডেটা পড়ার অনুমতি দেওয়া।

Access-Control-Allow-Origin: http://example.com/

… কেবলমাত্র একটি নির্দিষ্ট সাইটকে এটি অ্যাক্সেস করার অনুমতি দেবে এবং আপনি গতিশীলভাবে Origin অনুমতি দেওয়ার জন্য Origin অনুরোধ শিরোনামের ভিত্তিতে এটি তৈরি করতে পারেন, তবে সমস্ত কিছু নয়, সাইটগুলিকে এটি অ্যাক্সেস করার জন্য।

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

নোট: কিছু অনুরোধগুলি জটিল এবং একটি preflight বিকল্পগুলি অনুরোধ প্রেরণ করুন যা ব্রাউজারটি জিইটি / পোস্ট / পুট / জেএস যে যা অনুরোধ করতে চায় তা প্রেরণ করার আগে সার্ভারকে তার প্রতিক্রিয়া জানাতে হবে। নির্দিষ্ট ইউআরএলগুলিতে কেবল Access-Control-Allow-Origin যুক্ত করে এমন CORS এর বাস্তবায়ন প্রায়শই এটির মাধ্যমে বিভক্ত হয়ে যায়।

স্পষ্টতই সিওআরএসের মাধ্যমে অনুমতি দেওয়া হ'ল বব কেবল তখনই তা করবে:

  • তথ্য ব্যক্তিগত বা না ছিল
  • ম্যালোরির বিশ্বাস ছিল

আপনি যদি এই দৃশ্যেও বব হন তবে আপনি কীভাবে সিওআরএস অনুমতি শিরোনাম যুক্ত করবেন তার সুনির্দিষ্টতা আপনার এইচটিটিপি সার্ভার সফ্টওয়্যারটির পছন্দ এবং সার্ভার-সাইড প্রোগ্রামিংয়ের জন্য কোন ভাষা ব্যবহার করছেন (যদি থাকে) তার কিছু সমন্বয়ের উপর নির্ভর করবে।

ম্যালরি এই শিরোনামটি যুক্ত করতে পারে না কারণ তাকে ববয়ের সাইট থেকে অনুমতি নিতে হবে এবং নিজেকে অনুমতি দিতে সক্ষম হবার জন্য এটি মূর্খ হবে (এসওপি অকেজো উপস্থাপনার দিকে)।

ত্রুটি বার্তাগুলি যা "প্রিফলাইটের জন্য প্রতিক্রিয়া" উল্লেখ করে

কিছু ক্রস উত্স অনুরোধ preflight

এটি যখন ঘটে (মোটামুটিভাবে বলা হয়) আপনি ক্রস-অরিজিন অনুরোধ করার চেষ্টা করবেন যে:

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

আপনি যদি সঠিকভাবে এমন কিছু করছেন যা একটি প্রিফলাইট প্রয়োজন

এই ক্ষেত্রেগুলির পরে এই উত্তরটির বাকি অংশটি এখনও প্রয়োগ হয় তবে আপনাকে এটিও নিশ্চিত করতে হবে যে সার্ভারটি প্রিফলাইট অনুরোধটি শুনতে পারে (যা বিকল্পগুলি হবে (এবং GET , POST বা আপনি যা প্রেরণ করার চেষ্টা করছিলেন তা হবে)) এবং এর প্রতিক্রিয়া জানাতে হবে সঠিক Access-Control-Allow-Origin শিরোনাম সহ তবে Access-Control-Allow-Methods এবং Access-Control-Allow-Headers শিরোনামগুলিকে আপনার নির্দিষ্ট এইচটিটিপি পদ্ধতি বা শিরোলেখগুলিতে অনুমতি দেয়।

যদি আপনি ভুল করে একটি প্রিফলাইট ট্রিগার করে থাকেন

কখনও কখনও লোকেরা অ্যাজাক্স অনুরোধগুলি নির্মাণের চেষ্টা করার সময় ভুল করে এবং কখনও কখনও এগুলি একটি প্রিফলাইটের প্রয়োজনীয়তার প্রয়োজন হয়। যদি APIটি ক্রস-অরিজিনের অনুরোধগুলিকে মঞ্জুরি দেওয়ার জন্য ডিজাইন করা হয়, তবে প্রিফলাইটের প্রয়োজন এমন কোনও কিছুর প্রয়োজন হয় না, তবে এটি অ্যাক্সেসটি ভেঙে দিতে পারে।

এর মধ্যে সাধারণ ভুলগুলি অন্তর্ভুক্ত করে:

  • অনুরোধে Access-Control-Allow-Origin এবং অন্যান্য সিওআরএস প্রতিক্রিয়া শিরোনাম রাখার চেষ্টা করা হচ্ছে। এগুলি অনুরোধের অন্তর্ভুক্ত নয়, সহায়ক কিছু করবেন না (এমন কোনও অনুমতি সিস্টেমের কী উপায় যেখানে আপনি নিজেকে অনুমতি দিতে পারেন?) এবং অবশ্যই প্রতিক্রিয়াতে উপস্থিত হতে হবে।
  • একটি Content-Type: application/json শিরোনাম একটি জিইটি অনুরোধে রাখার চেষ্টা করা হচ্ছে যাতে এর সামগ্রীর বিবরণ দেওয়ার জন্য কোনও অনুরোধের বডি নেই (সাধারণত যখন লেখক Content-Type এবং স্বীকারকে বিভ্রান্ত করেন)।

এই উভয় ক্ষেত্রেই অতিরিক্ত অনুরোধ শিরোনাম অপসারণ প্রায়শই একটি প্রিফলাইটের প্রয়োজনীয়তা এড়াতে যথেষ্ট হবে (যা সরল অনুরোধগুলিকে সমর্থন করে তবে প্রাক-আলোকিত অনুরোধগুলি সমর্থন করে না এমন APIs এর সাথে যোগাযোগ করার সময় সমস্যার সমাধান হবে)।

অস্বচ্ছ প্রতিক্রিয়া

কখনও কখনও আপনার একটি HTTP অনুরোধ করা প্রয়োজন, তবে আপনাকে প্রতিক্রিয়াটি পড়ার দরকার নেই। যেমন আপনি যদি রেকর্ডিংয়ের জন্য সার্ভারে একটি লগ বার্তা পোস্ট করছেন।

আপনি যদি XMLHttpRequest এপিআই ব্যবহার করছেন ( XMLHttpRequest পরিবর্তে), তবে আপনি সিওআরএস ব্যবহার না করার জন্য এটি কনফিগার করতে পারেন।

দ্রষ্টব্য যে এটি আপনাকে কর্সের প্রয়োজন এমন কিছু করতে দেবে না। আপনি প্রতিক্রিয়াটি পড়তে পারবেন না। আপনি একটি অনুরোধ করতে সক্ষম হবেন না যার জন্য প্রিফলাইট প্রয়োজন।

এটি আপনাকে একটি সাধারণ অনুরোধ করতে দেবে, প্রতিক্রিয়াটি দেখতে পাবে না এবং ত্রুটি বার্তাগুলি দিয়ে বিকাশকারী কনসোলটি পূরণ করবে না।

এটি কীভাবে করবেন তা যখন আপনি fetch ব্যবহারের জন্য একটি অনুরোধ করেন এবং সিওআরএসের সাথে প্রতিক্রিয়া দেখার অনুমতি না পান তখন প্রদত্ত ক্রোম ত্রুটি বার্তা দ্বারা এটি ব্যাখ্যা করা হয়:

উত্স ' https://example.com/ ' থেকে ' https://example.com/ ' এ আনতে অ্যাক্সেসটি সিওআরএস নীতি দ্বারা অবরুদ্ধ করা হয়েছে: অনুরোধকৃত উত্সটিতে কোনও ' Access-Control-Allow-Origin ' শিরোনাম উপস্থিত নেই। যদি কোনও অস্বচ্ছ প্রতিক্রিয়া আপনার প্রয়োজনগুলি সরবরাহ করে তবে অনুরোধের মোডটি 'নো-কর্স' এ সেট করুন CORS অক্ষম করে রিসোর্স আনতে।

এভাবে:

fetch("http://example.com", { mode: "no-cors" });

সিওআরএসের বিকল্প

jsonp

বব JSONP মতো হ্যাক ব্যবহার করে ডেটা সরবরাহ করতে পারে যা CORS আসার আগে লোকেরা ক্রস-অরিজিন অ্যাজাক্সকে করেছিল।

এটি একটি জাভাস্ক্রিপ্ট প্রোগ্রাম আকারে ডেটা উপস্থাপিত করে কাজ করে যা ম্যালোরির পৃষ্ঠায় ডেটাটি ইনজেক্ট করে।

এটি ম্যালরির বিশ্বাস ববকে দূষিত কোড সরবরাহ না করার প্রয়োজন।

সাধারণ থিমটি নোট করুন: ডেটা সরবরাহকারী সাইটের ব্রাউজারকে বলতে হবে যে কোনও তৃতীয় পক্ষের সাইটের ব্রাউজারে প্রেরণ করা ডেটা অ্যাক্সেস করা ঠিক আছে is

যেহেতু JSONP কোনও জাভাস্ক্রিপ্ট প্রোগ্রাম আকারে ডেটা লোড করার জন্য <script> উপাদান যুক্ত করে যা এই পৃষ্ঠায় ইতিমধ্যে একটি ফাংশন কল করে, একটি URL এ JSONP কৌশল ব্যবহারের প্রচেষ্টা ব্যর্থ হবে যা JSON ফেরত দেয় - সাধারণত একটি CORB ত্রুটি সহ - কারণ জেএসএন জাভাস্ক্রিপ্ট নয়।

দুটি সংস্থানকে একটি একক উত্সে সরান

যদি এইচটিএমএল নথিটি জেএস চালিত হয় এবং অনুরোধ করা URL টি একই উত্সের (একই স্কিম, হোস্টনাম এবং পোর্ট ভাগ করে নেওয়ার) হয় তবে তারা একই উত্স নীতি ডিফল্টরূপে অনুমতি দেয়। সিওআরএস দরকার হয় না।

বদলি

ম্যালরি ডেটা আনার জন্য সার্ভার-সাইড কোড ব্যবহার করতে পারে (যা সে তার সার্ভার থেকে যথারীতি এইচটিটিপি-র মাধ্যমে এলিসের ব্রাউজারে যেতে পারে)।

এটি হয়:

  • CORS শিরোনাম যুক্ত করুন
  • প্রতিক্রিয়াটি JSONP এ রূপান্তর করুন
  • এইচটিএমএল ডকুমেন্ট হিসাবে একই উত্স উপর বিদ্যমান

এই সার্ভার-সাইড কোডটি তৃতীয় পক্ষের দ্বারা লিখিত এবং হোস্ট করা যেতে পারে (যেমন কোনও জায়গায় সিওআরএস)। এর গোপনীয়তার অন্তর্নিহিতকরণগুলি নোট করুন: তৃতীয় পক্ষ তাদের সার্ভারগুলিতে কে কী প্রক্স করে তা পর্যবেক্ষণ করতে পারে।

এটি হওয়ার জন্য ববকে কোনও অনুমতি দেওয়ার দরকার পড়েনি।

এটি ঠিক হবে যেহেতু এটি কেবল ম্যালরি এবং ববের মধ্যে রয়েছে। মোলরিকে অ্যালিস বলে মনে করার এবং অ্যালিস এবং ববয়ের মধ্যে গোপনীয় হওয়া উচিত এমন ম্যালোরিকে এমন ডেটা সরবরাহ করার জন্য ববের পক্ষে কোনও উপায় নেই।

ফলস্বরূপ, ম্যালরি জনসাধারণের ডেটা পড়ার জন্য এই কৌশলটি ব্যবহার করতে পারে।

ওয়েব অ্যাপ্লিকেশন ব্যতীত অন্য কিছু লেখা

"কেন একই উত্স পলিসি কেবল ওয়েব পৃষ্ঠায় জাভাস্ক্রিপ্টের জন্য প্রযোজ্য" বিভাগে উল্লিখিত হয়েছে, আপনি কোনও ওয়েবপৃষ্ঠায় জাভাস্ক্রিপ্ট না লিখে এসওপিকে এড়াতে পারবেন।

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

ব্রাউজার এক্সটেনশান

একই উত্স নীতি প্রয়োগ করার আগে ব্রাউজারের এক্সটেনশনের পক্ষে প্রতিক্রিয়ায় CORS শিরোনাম ইনজেকশন করা সম্ভব।

এগুলি উন্নয়নের জন্য কার্যকর হতে পারে তবে কোনও প্রোডাকশন সাইটের জন্য ব্যবহারিক নয় (আপনার সাইটের প্রতিটি ব্যবহারকারীকে তাদের ব্রাউজারের সুরক্ষা বৈশিষ্ট্যটি অক্ষম করে এমন একটি ব্রাউজার এক্সটেনশান ইনস্টল করতে জিজ্ঞাসা করা অযৌক্তিক)।

তারা কেবল সাধারণ অনুরোধগুলি (প্রিফলাইট অপশন অনুরোধগুলি পরিচালনা করার ক্ষেত্রে ব্যর্থ) দিয়ে কাজ করার ঝোঁক।

স্থানীয় বিকাশের সার্ভারের সাথে উপযুক্ত বিকাশের পরিবেশ হওয়াই সাধারণত আরও ভাল পদ্ধতির।

অন্যান্য সুরক্ষা ঝুঁকি

মনে রাখবেন যে এসওপি / সিওআরএস XSS , CSRF , বা এসকিউএল ইনজেকশন আক্রমণগুলিকে প্রশমিত করে না যা স্বতন্ত্রভাবে পরিচালনা করা দরকার।

সারাংশ

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

TL; ড; একই উত্স নীতি সম্পর্কে

আমার একটি গ্রান্ট প্রক্রিয়া রয়েছে যা এক্সপ্রেস.জেএস সার্ভারের একটি উদাহরণ শুরু করে। এটি ঠিক এখন অবধি কাজ করে যাচ্ছিল যখন ক্রোমে বিকাশকারীদের কনসোলে ত্রুটি লগটিতে নিম্নলিখিত সংস্করণটি দেখা দিয়ে (ফাঁকা পৃষ্ঠায়) সর্বশেষ সংস্করণটি দেওয়া হয়েছিল (সর্বশেষ সংস্করণ):

XMLHttpRequest https://www.example.com/ লোড করতে পারবেন না অনুরোধকৃত উত্সটিতে কোনও 'অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স' শিরোনাম উপস্থিত নেই। উত্স ' http: // লোকালহোস্ট: 4300 ' তাই অ্যাক্সেসের অনুমতি নেই।

পৃষ্ঠাটিতে অ্যাক্সেস করা থেকে আমাকে কী বাধা দিচ্ছে?


এই সিওআরএস ইস্যুটি আরও বিশদে বর্ণিত হয়নি (অন্যান্য কারণে)।

আমি বর্তমানে বিভিন্ন কারণে এই সমস্যাটি নিয়ে আসছি। আমার সামনের প্রান্তটি 'অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স' -র শিরোনাম ত্রুটিও ফিরে আসছে।

কেবলমাত্র আমি ভুল ইউআরএল নির্দেশ করেছি যাতে এই শিরোনামটি সঠিকভাবে প্রতিফলিত হয় না (যাতে আমি এটি ধরে রেখেছি)। লোকালহোস্ট (সম্মুখ প্রান্ত) -> নন সুরক্ষিত HTTP (https বলে মনে করা হবে) এ কল করুন, নিশ্চিত করুন যে সামনে প্রান্ত থেকে API এর শেষ পয়েন্টটি সঠিক প্রোটোকলের দিকে নির্দেশ করছে।


এটি কাজ করতে আপনার CORS সক্ষম করা উচিত।


টার্গেট সার্ভারকে অবশ্যই ক্রস-আর্জি অনুরোধের অনুমতি দেওয়া উচিত। এক্সপ্রেসের মাধ্যমে এটিকে অনুমতি দেওয়ার জন্য, কেবলমাত্র http বিকল্পগুলির অনুরোধটি হ্যান্ডেল করুন:

app.options('/url...', function(req, res, next){
   res.header('Access-Control-Allow-Origin', "*");
   res.header('Access-Control-Allow-Methods', 'POST');
   res.header("Access-Control-Allow-Headers", "accept, content-type");
   res.header("Access-Control-Max-Age", "1728000");
   return res.sendStatus(200);
});







same-origin-policy