'অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স' শিরোনামে একাধিক মান রয়েছে


104

সার্ভার সাইডে ASP.NET ওয়েব এপিআই অ্যাপ্লিকেশনটির একটি শেষ পয়েন্ট অ্যাক্সেস করতে আমি ক্লায়েন্টের পাশে AngularJS $ HT ব্যবহার করছি। সার্ভার হিসাবে ক্লায়েন্টটি অন্য কোনও ডোমেনে হোস্ট করা হওয়ায়, আমার সিওআরএস দরকার। এটি $ http.post (url, ডেটা) এর জন্য কাজ করে। তবে আমি ব্যবহারকারীকে প্রমাণীকরণ করার সাথে সাথে $ http.get (url) এর মাধ্যমে একটি অনুরোধ জানালে আমি বার্তাটি পাই

'অ্যাক্সেস-কন্ট্রোল-অলজন-অরিজিন' শিরোনামে একাধিক মান রয়েছে 'http://127.0.0.1:9000, http://127.0.0.1:9000', তবে কেবল একটির জন্য অনুমোদিত। উত্স 'http://127.0.0.1:9000' এ অ্যাক্সেসের অনুমতি নেই।

ফিডলার আমাকে দেখায় যে সফল বিকল্পগুলির অনুরোধের পরে প্রাপ্তির অনুরোধে দু'টি শিরোলেখ প্রবেশকারী রয়েছে। কি এবং কোথায় আমি কিছু ভুল করছি?

হালনাগাদ

আমি যখন Qu http.get এর পরিবর্তে jQuery $ .get ব্যবহার করি তখন একই ত্রুটি বার্তা উপস্থিত হয়। সুতরাং এটি AngularJS এর ​​সাথে কোনও সমস্যা বলে মনে হচ্ছে না। তবে কোথায় ভুল হয়েছে?


আচ্ছা, হেডারটিতে কী রয়েছে?

উত্তর:


53

আমি যোগ করলাম

config.EnableCors(new EnableCorsAttribute(Properties.Settings.Default.Cors, "", ""))

পাশাপাশি

app.UseCors(CorsOptions.AllowAll);

সার্ভারে। এর ফলে দুটি শিরোনাম এন্ট্রি হয় ries কেবল পরেরটি ব্যবহার করুন এবং এটি কাজ করে।


4
দেখে মনে হচ্ছে আপনি কোনও সেটিংস ফাইল থেকে প্রোপার্টি.সেটেটিংস.ডাফল্ট.কোরগুলি পড়ছেন। আপনি একটি উদাহরণ পোস্ট করতে পারেন? ইউসকর্স কোন ক্লাসে রয়েছে?
হোপ্প

"আনকাচড রেফারেন্স এরিয়ার: এ্যাবলিবলকর্সঅ্যাট্রিবিউট সংজ্ঞায়িত হয়নি" ??
সার্কিটি

@Hoppe, দয়া করে কটাক্ষপাত আছে msdn.microsoft.com/en-us/library/dn314597(v=vs.118).aspx । এটি ব্যাখ্যা করে যে, সক্ষমকর্সঅ্যাট্রিবিউটের প্রথম পরামিতি অনুমোদিত মুল উত্স। উদাহরণস্বরূপ "*" সকলকে অনুমতি দেওয়া।
পাপা মাফলন

1
@ হপ্প, ইউজকর্স হ'ল নুগেট প্যাকেজ মাইক্রোসফ্ট.উইন.কর্সগুলিতে সংজ্ঞায়িত একটি এক্সটেনশন পদ্ধতি। Sf katanaproject.codeplex.com/SourceControl/latest#src/...
পাপা মাফলন

7
config.EnableCors (সক্ষমCorsAttribute) সাধারণত WebApiConfig.cs এ ডাকা হয় - এটি মাইক্রোসফ্ট.এএসপনেট. ওয়েবেএপি.কর্স নাগেট প্যাকেজের অংশ, যার ব্যবহারটি এখানে বর্ণিত রয়েছে: asp.net/web-api/overview/security/… অ্যাপ্লিকেশন .UseCors (CorsOptions.AllowAll) সাধারণত আপনার পরিচয় প্রদানকারী (উদাহরণস্বরূপ OAuth) কনফিগার করার অংশ হিসাবে স্টার্টআপ.অথ.সিগুলিতে ডাকা হয় এবং এটি মাইক্রোসফট.উইন.কর্স নাগেট প্যাকেজের অংশ।
হেনরি সি

51

আমরা এই সমস্যায় পড়েছি কারণ সেরা অনুশীলন (যেমন http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api ) অনুসারে আমরা CORS স্থাপন করেছিলাম এবং ওয়েবসনফাইগ এ ALSO এর একটি কাস্টম শিরোনাম ছিল <add name="Access-Control-Allow-Origin" value="*"/>

ওয়েবকনফিগ এন্ট্রি সরান, এবং সবকিছু ঠিক আছে।

@ এমইউ'র উত্তরের বিপরীতে, আমাদের কাছে এখনও EnableCors()ওয়েবএপিপিফিগ.সি.এস এবং একটি EnableCorsAttributeনিয়ামক রয়েছে। যখন আমরা একটি বা অন্যটি বের করেছিলাম, তখন আমরা অন্যান্য ইস্যুগুলিতে ছড়িয়ে পড়েছিলাম।


11
আমি এই লাইনটি <যোগ নাম = "অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি-উত্স" -র মান = "*" /> সরিয়েছি এবং ওয়েবকনফাইগ ফাইলটিতে আমার অন্য দুটি এন্ট্রি রয়েছে যা আমি সরিয়ে নেই: <নাম নাম = "অ্যাক্সেস -কন্ট্রোল-মঞ্জুরি-শিরোনাম "মান =" বিষয়বস্তুর ধরণ "/> <যোগ নাম =" অ্যাক্সেস-নিয়ন্ত্রণ-অনুমতি পদ্ধতি "মান =" জিইটি, পোষ্ট, পুট, মোছা, অপশন "/>
শিভা কার্তিকায়ান

2
এটি কী, আপনার কেবল একবার সিআরএস সক্ষম করতে হবে, আমার সমস্যাটি হ'ল আমি এটি আমার ওয়েবকনফাইগের পাশাপাশি অ্যাপ্লিকেশন.উসকোর্সগুলিতেও সক্ষম করেছিলাম ... আমি ওয়েবকনফিগ এন্ট্রি সরিয়েছি এবং কেবল অ্যাপটি ব্যবহার করেছি। (Microsoft.Owin.Cors.CorsOptions.AllowAll); পরিবর্তে পদ্ধতি।
মোহাম্মদ সিপাহাভন্ড

1
উপরের লাইনটি আমার জীবন বাঁচাল! আপনি একাধিকবার CORS সক্ষম না করে তা নিশ্চিত করুন, অন্যথায় এটি ঘটবে এবং আপনি খুব হতাশ হবেন।
টিগ্রারিট

ওয়েবকনফিগ থেকে <নাম নাম = "অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোনামগুলি" মান = "বিষয়বস্তুর ধরণ" />
সরানো হয়েছে

1
"এটি কী, আপনার অবশ্যই একবার CORS সক্ষম করতে হবে" <- এটি হ'ল মোহাম্মদসেপাহভন্ড ধন্যবাদ TH NET এ ফিরে যান এবং ইতিমধ্যে অবাক হয়ে যান: ডি।
তুয়ান জিন

42

আমি কর্স 5.1.0.0 কে ব্যবহার করছি, অনেক মাথা ব্যথার পরে, আমি সমস্যাটি সার্ভার থেকে অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স এবং অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-শিরোলেখ শিরোলেখগুলিকে নকল করে ফেলতে পেরেছি

config.EnableCors()WebApiConfig.cs ফাইল থেকে সরানো হয়েছে এবং কেবলমাত্র [EnableCors("*","*","*")]নিয়ামক শ্রেণিতে বৈশিষ্ট্য সেট করুন set

পরীক্ষা করে দেখুন এই নিবন্ধটি আরো বিস্তারিত জন্য।


এটি আমার পক্ষে কাজ করে, কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি
ওয়েবকোনফিগ

12

WebApiConfig নিবন্ধনে যুক্ত করুন

var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);

অথবা ওয়েবকনফিগ

<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>  
</httpProtocol>

তবে দুটি নয়


2
এটি আমার জন্য মূল সমাধান ছিল, দুটোই করবেন না।
রোবনিক

8

আসলে আপনি একাধিক শিরোলেখ সেট করতে পারবেন না Access-Control-Allow-Origin(বা কমপক্ষে এটি সমস্ত ব্রাউজারে কাজ করবে না)। পরিবর্তে আপনি শর্তাধীন পরিবেশের পরিবর্তনশীল সেট করতে পারেন এবং তারপরে এটি Headerনির্দেশে ব্যবহার করতে পারেন :

SetEnvIf Origin "^(https?://localhost|https://[a-z]+\.my\.base\.domain)$" ORIGIN_SUB_DOMAIN=$1
Header set Access-Control-Allow-Origin: "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN

সুতরাং এই উদাহরণে প্রতিক্রিয়া শিরোনাম কেবল তখনই যুক্ত করা হবে যখন কোনও অনুরোধ শিরোনাম OriginRegExp এর সাথে মেলে:^(https?://localhost|https://[a-z]+\.my\.base\.domain)$ (এটির মূলত HTTP বা HTTPS এর উপরে লোকালহোস্ট এবং HTTPS ওভার * .my.base.domain))

সক্ষম করতে মনে রাখবেন setenvifমডিউল ।

দস্তাবেজ:

BTW। }eমধ্যে %{ORIGIN_SUB_DOMAIN}eএকটি টাইপো নয়। Headerনির্দেশের ক্ষেত্রে আপনি কীভাবে পরিবেশের পরিবর্তনশীল ব্যবহার করেন ।


1
একাধিক অ্যাক্সেস নিয়ন্ত্রণ শিরোনাম সেট না করার জন্য আপনার কাছে কি কোনও উত্স আছে? এটির সত্যতা নিশ্চিত করে এমন কিছু আমি পাই না।
স্পেন্সার

খুব স্মার্ট এবং পরিষ্কার সমাধান। আমার জন্য কাজ করেছেন।
অ্যালেক্স কাল্মিকভ

@Spencer "নোট: বাস্তবে উৎপত্তি-তালিকা-অর-নাল উৎপাদন আরো সীমাবদ্ধ বরং উদ্ভব একটি স্থান পৃথক করা তালিকা যার ফলে চেয়ে, এটা। হয় একটি মাত্র মূল বা স্ট্রিং" নাল " ।" w3.org/TR/cors/#access-control-allow-origin-response-header
Nux

8

আমারও ওউআইএন এবং আমার ওয়েবএপিআই উভয়ই ছিল যে উভয়ই দৃশ্যত CORS আলাদাভাবে সক্ষম করা দরকার যা ফলস্বরূপ 'Access-Control-Allow-Origin' header contains multiple valuesত্রুটি তৈরি করেছিল ।

আমি সমস্ত কোড মুছে ফেলা শেষ করে যা CORS সক্ষম করে এবং তারপরে নিম্নলিখিতটি system.webServerআমার ওয়েবের নোডে যুক্ত করে on কনফিগ:

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="https://stethio.azurewebsites.net" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization" />
  </customHeaders>
</httpProtocol>

ওউইন (লগ ইন করার অনুমতি দেওয়া) এবং ওয়েবএপিআইয়ের (এপিআই কলগুলি মঞ্জুরি দেওয়ার) জন্য এই সন্তুষ্ট কর্স প্রয়োজনীয়তাগুলি করা, তবে এটি একটি নতুন সমস্যা তৈরি OPTIONSকরেছে: আমার এপিআই কলগুলির প্রিফলাইটের সময় কোনও পদ্ধতি খুঁজে পাওয়া যায় নি। এর জন্য handlersসমাধানটি সহজ ছিল - আমার কেবল আমার ওয়েব নোড থেকে নিম্নলিখিতগুলি সরিয়ে ফেলতে হবে on কনফিগ:

<remove name="OPTIONSVerbHandler" />

আশা করি এটি কাউকে সাহায্য করবে।


7

অ্যাপাচি সার্ভার:

আমি একই ব্যয় করি, তবে এটি কারণ ছিল যে আমার ফাইলে কোনও উদ্ধৃতি চিহ্ন (") নক্ষত্রটি ছিল না যা সার্ভারটিতে অ্যাক্সেস সরবরাহ করেছিল, যেমন '.htaccess।':

Header add Access-Control-Allow-Origin: * 
Header add Access-Control-Allow-Origin "*" 

অন্য একটি '.htaccess' আউট সহ ফোল্ডারে আপনার একটি ফাইল '.htaccess' থাকতে পারে, যেমন eg

/ 
- .htaccess 
- public_html / .htaccess (problem here)

আপনার ক্ষেত্রে '*' এর পরিবর্তে নক্ষত্রটি আইপি ( http://127.0.0.1:9000) সার্ভার হবে যা আপনি ডেটা পরিবেশন করার অনুমতি দেন।

ASP.NET:

আপনার কোডটিতে কোনও 'অ্যাক্সেস-কন্ট্রোল-অলজিন-অরিজিন' নকল নেই তা পরীক্ষা করুন।

ডেভেলপার টুলস:

Chrome এর মাধ্যমে আপনি আপনার অনুরোধ শিরোনাম যাচাই করতে পারেন। F12 কী টিপুন এবং 'নেটওয়ার্ক' ট্যাবে যান, এখন AJAX অনুরোধটি চালান এবং তালিকায় উপস্থিত হবে, ক্লিক করুন এবং সমস্ত তথ্য সেখানে রয়েছে।

অ্যাক্সেস-নিয়ন্ত্রণ-মঞ্জুরি-উত্স: *


কখনও কখনও এটি এত সহজ ... আমি এই অ্যাপ্লিকেশন_বিগিনরয়েস্ট পদ্ধতিটি দিয়ে আইআইএস / ক্রোমটিতে চালানোর জন্য এই বিভ্রান্ত ওয়েব পরিষেবাটি চালানোর চেষ্টা করেছিলাম এবং এটি সম্পর্কে ভুলে গেছি ... আমার নিজের কোডটিতে নকল! সুস্পষ্ট আমাকে নির্দেশ করার জন্য ধন্যবাদ! :)
জুয়ারজেন রিমার

2
সিওআরএস প্রতিক্রিয়া শিরোনামগুলি পেতে, আপনাকে একটি আসল ক্রস-অরিজিন অনুরোধটিও তৈরি করতে হবে, তাই আপনি যদি চলমান সাইটের নেটওয়ার্ক ট্যাবটিতে সন্ধান করেন তবে এটি প্রদর্শিত নাও হতে পারে। তবে, আপনার এজেএক্স অনুরোধটি চালানোর জন্য ডিএইচসি ( chrome.google.com/webstore/detail/dhc-resthttp-api-client/… ) এর মতো কিছু ব্যবহার করে প্রযুক্তিগতভাবে কোনও অন্য ডোমেন থেকে কল করা হবে, এইভাবে সিওআরএস ট্রিগার করবে এবং আপনাকে দেখার অনুমতি দেবে অ্যাক্সেস কন্ট্রোল শিরোনাম।
হেনরি সি

4

যখন আপনার একাধিক স্থানে কর্স বিকল্পটি কনফিগার করা থাকে তখন এটি ঘটে। আমার ক্ষেত্রে এটি আমার নিয়ামক স্তরের পাশাপাশি স্টার্টআপেও ছিল Aঅ্যাথ। সি / কনফিগারআথ uth

আমার বোধগম্যতা হল আপনি যদি অ্যাপ্লিকেশনটি প্রশস্ত করতে চান তবে এটি কেবল স্টার্টআপের আওতায় কনফিগার করুন uthঅর্থ.সি. / কনফিগারআউথের মতো ... আপনার মাইক্রোসফ্ট.অউইন.কর্সের রেফারেন্সের প্রয়োজন হবে

public void ConfigureAuth(IAppBuilder app)
        {
          app.UseCors(CorsOptions.AllowAll);

আপনি যদি এটি নিয়ন্ত্রক স্তরে রাখেন তবে আপনি কেবল কন্ট্রোলার স্তরে সন্নিবেশ করতে পারেন।

[EnableCors("http://localhost:24589", "*", "*")]
    public class ProductsController : ApiController
    {
        ProductRepository _prodRepo;

আমার ক্ষেত্রে আমি এটি ওয়েব.কনফিগ এবং মাইএপএপিপিফিনিউসি.সি.এস. উভয়ই সেট করেছিলাম। পরে থেকে এটি সরিয়ে ফেলা আমার জন্য সমস্যার সমাধান করেছে।
জিম বি

4

আপনি যদি আইআইএসে থাকেন তবে আপনাকে ওয়েবকনফাইগে সিওআরএস চালু করতে হবে, তবে আপনার অ্যাপ্লিকেশন / ওয়েবএপিসিফিগ.সি.সি রেজিস্টার পদ্ধতিতে সক্ষম করার দরকার নেই don't

আমার সমাধানটি ছিল এখানে লাইনগুলিতে মন্তব্য:

// Enable CORS
//EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
//config.EnableCors(cors);

এবং ওয়েব.কমফিগে লিখুন:

<system.webServer>
  <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
  </customHeaders>
</httpProtocol>


2

এটি অবশ্যই ঘটতে পারে যদি আপনি নিজের Access-Control-Allow-Originশিরোনামটিকে একাধিক মান রাখার জন্য সেট করে থাকেন - উদাহরণস্বরূপ, একটি কমা দ্বারা পৃথক করা মানগুলির তালিকা, যা আরএফসিতে একধরনের সমর্থিত তবে বাস্তবে বেশিরভাগ প্রধান ব্রাউজারগুলি সমর্থন করে না। দ্রষ্টব্য যে আরএফসি পাশাপাশি '*' ব্যবহার না করে একাধিক ডোমেনকে কীভাবে অনুমতি দেওয়া যায় সে সম্পর্কে আলোচনা করে।

উদাহরণস্বরূপ, আপনি ক্রোমে এমন একটি শিরোলেখ ব্যবহার করে ত্রুটিটি পেতে পারেন:

Access-Control-Allow-Origin: http://test.mysite.com, http://test2.mysite.com

এই ছিল Chrome Version 64.0.3282.186 (Official Build) (64-bit)

মনে রাখবেন যে আপনি যদি কোনও সিডিএন এর কারণে এটি বিবেচনা করে থাকেন এবং আপনি আকামাই ব্যবহার করেন তবে আপনি খেয়াল করতে চাইতে পারেন যে আপনি যদি ব্যবহার করেন তবে সার্ভারে আকামাই ক্যাশে পাবেন না Vary:Origin , যেভাবে অনেকে এই সমস্যাটি সমাধান করার পরামর্শ দেয়।

"ক্যাশে আইডি সংশোধন" প্রতিক্রিয়া আচরণ ব্যবহার করে আপনাকে সম্ভবত আপনার ক্যাশে কী তৈরি হয় তা পরিবর্তন করতে হবে। এই সম্পর্কিত স্ট্যাকওভারফ্লো প্রশ্নে এই বিষয়ে আরও বিশদ


সুতরাং মূলত, আপনি এখনই পারবেন না কারণ এটি সন্দেহজনক যে আপনি ইন্টারনেটের প্রতিটি ডোমেন ইউআরএল হিট করতে চাইবেন।
স্কটিথেল

আকামাই লিঙ্কটি লগ ইন করতে হবে
জিন-ফ্রান্সোয়েস সাভার্ড

হ্যাঁ those দস্তাবেজের জন্য এটি আকমাই প্রয়োজন বলে মনে হয় ;-(
ব্র্যাড পার্কগুলি

আরেকটি Chrome এর এই ত্রুটির পেতে মূল্যবোধের একটি স্থান পৃথক করা তালিকা সাথে আছেন: Access-Control-Allow-Origin: http://test.mysite.com http://test2.mysite.com। যে হবে সঠিক উপায়, কিন্তু ব্রাউজার মান এখানে (অনুসরণ করো না উৎস )।
tanius

2

এত নির্বোধ এবং সহজ:

Header always set Access-Control-Allow-Origin *আমার অ্যাপাচি কনফিগারেশন ফাইলের ভিতরে দু'বার থাকার সময় আমার জন্য এই সমস্যাটি দেখা দিয়েছে । একবার VirtualHostট্যাগ সহ এবং একবার একটি Limitট্যাগের মধ্যে:

<VirtualHost localhost:80>
  ...
  Header set Access-Control-Allow-Origin: *
  ...
  <Limit OPTIONS>
    ...
    Header set Access-Control-Allow-Origin: *
    ...
  </Limit>
</VirtualHost>

একটি এন্ট্রি সরানো সমস্যার সমাধান করেছে।

আমার ধারণা মূল পোস্টে এটি দু'বার হয়েছে:

Header set Access-Control-Allow-Origin: "http://127.0.0.1:9000"

1

সবেমাত্র নোডেজ সার্ভারে এই সমস্যাটি ছিল।

এখানে আমি এটি ঠিক করেছি।
আমি আমার নোড সার্ভারটি একটি এর মাধ্যমে চালিত করেছি nginx proxyএবং আমি এনজিনেক্স এবং nodeউভয় সেট করেছিলাম allow cross domain requestsএবং এটি পছন্দ করে না তাই আমি এটিকে এনজিনেক্স থেকে সরিয়ে নোডে রেখে দিয়েছি এবং সব ঠিক আছে।


এই উত্তরের জন্য আপনাকে ধন্যবাদ! এটি একটি সমস্যার সমাধান করেছে আমি দীর্ঘদিন ধরে এনজিঙ্ক্স + র্যাক (রুবি) সেটআপ দিয়ে সমাধান করতে পারিনি। একই সমস্যা, একই সমাধান: এনজিনেক্সে শিরোনাম সংযোজন বন্ধ করুন এবং rack-corsমণিটি কর্নস স্টাফ পরিচালনা করতে দিন । বাম, স্থির।
পিস্তোস

0

আমি একই সমস্যার মুখোমুখি হয়েছি এবং এটি সমাধানের জন্য আমি এটাই করেছি:

WebApi পরিষেবাতে, Global.asax এর ভিতরে আমি নিম্নলিখিত কোডটি লিখেছি:

Sub Application_BeginRequest()
        Dim currentRequest = HttpContext.Current.Request
        Dim currentResponse = HttpContext.Current.Response

        Dim currentOriginValue As String = String.Empty
        Dim currentHostValue As String = String.Empty

        Dim currentRequestOrigin = currentRequest.Headers("Origin")
        Dim currentRequestHost = currentRequest.Headers("Host")

        Dim currentRequestHeaders = currentRequest.Headers("Access-Control-Request-Headers")
        Dim currentRequestMethod = currentRequest.Headers("Access-Control-Request-Method")

        If currentRequestOrigin IsNot Nothing Then
            currentOriginValue = currentRequestOrigin
        End If

        If currentRequest.Path.ToLower().IndexOf("token") > -1 Or Request.HttpMethod = "OPTIONS" Then
            currentResponse.Headers.Remove("Access-Control-Allow-Origin")
            currentResponse.AppendHeader("Access-Control-Allow-Origin", "*")
        End If

        For Each key In Request.Headers.AllKeys
            If key = "Origin" AndAlso Request.HttpMethod = "OPTIONS" Then
                currentResponse.AppendHeader("Access-Control-Allow-Credentials", "true")
                currentResponse.AppendHeader("Access-Control-Allow-Methods", currentRequestMethod)
                currentResponse.AppendHeader("Access-Control-Allow-Headers", If(currentRequestHeaders, "GET,POST,PUT,DELETE,OPTIONS"))
                currentResponse.StatusCode = 200
                currentResponse.End()
            End If
        Next

    End Sub

এখানে এই কোডটি প্রি-ফ্লাইট এবং টোকেন অনুরোধটিকে প্রতিক্রিয়াতে "অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স" যোগ করার অনুমতি দেয় অন্যথায় আমি এটিকে যোগ করছি না।

বাস্তবায়ন সম্পর্কে আমার ব্লগ এখানে: https://ibhowmick.wordpress.com/2018/09/21/cross-domain-token-based-authentication-with-web-api2-and-jquery-angular-5-angular- 6 /


0

যারা পিএইচপি দিয়ে আইআইএস ব্যবহার করছেন, তাদের জন্য আইআইএস এটি সার্ভার সাইড আপডেট ওয়েবকনফিগ ফাইল এটি রুট ডিরেক্টরি (wwwroot) ফাইল করুন এবং এটি যুক্ত করুন

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="true" />
        <httpProtocol>
            <customHeaders>
                <add name="Control-Allow-Origin" value="*"/>
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

আইআইএস সার্ভারটি পুনরায় চালু হওয়ার পরে, RUN এ টাইপ করুন এবং এন্টার করুন


0

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

URL called:  'https://example.com/foo/bar'
                     ^              ^
      CORS config file in root      virtual directory with another CORS config file
          deleted this config             other sites using this


0

'অ্যাক্সেস-কন্ট্রোল-মঞ্জুরি-উত্স' শিরোনামে একাধিক মান রয়েছে

যখন আমি এই ত্রুটিটি পেয়েছি তখন আমি এর জন্য সমাধান অনুসন্ধানের জন্য কয়েক ঘন্টা ব্যয় করেছি তবে কিছুই কার্যকর হয়নি, অবশেষে আমি এই সমস্যার সমাধান পেয়েছি যা খুব সহজ। যখন '' অ্যাক্সেস-কন্ট্রোল-অরিজিন-অরিজিন 'শিরোনামটি আপনার প্রতিক্রিয়ায় একাধিকবার যুক্ত হয়েছে যখন এই ত্রুটি দেখা দেয়, তখন আপনার apache.conf বা httpd.conf (অ্যাপাচি সার্ভার), সার্ভার সাইড স্ক্রিপ্টটি পরীক্ষা করুন এবং এই ফাইলগুলি থেকে অযাচিত প্রবেশের শিরোনাম সরান ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.