"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تنفيذ مشاركة الموارد عبر المجال (CORS) في ASP.NET Core Web API؟

كيفية تنفيذ مشاركة الموارد عبر المجال (CORS) في ASP.NET Core Web API؟

نشر في 2025-04-30
تصفح:979

How to Implement Cross-Origin Resource Sharing (CORS) in ASP.NET Core Web API?

تمكين cors في ASP.net Core Web API: دليل كامل

مشاركة الموارد المتقاطعة (CORS) هي آلية تتيح للمتصفحات الويب تقديم طلبات HTTP المتقاطعة ، عادةً للمجالات التي تختلف عن المصدر الحالي للمتصفح. يعد تمكين CORS أمرًا بالغ الأهمية لضمان التواصل السلس بين التطبيقات الأمامية وواجهة برمجة تطبيقات الويب الخلفية المستضافة على مجالات أو منافذ مختلفة.

تمكين cors

في startup.cs

الطريقة المفضلة لتمكين CORS في ASP.NET Core هي من خلال ملف STARTUP.CS. في طريقة التكوينات ، أضف الأسطر التالية لتثبيت حزمة CORS وتكوين خدمة CORS:

services.AddCors();
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

app.Usecors (خيارات => خيارات.
app.UseCors(options => options.WithOrigins("http://example.com").AllowAnyMethod());

cors التكوين العالمي

]

إذا كنت ترغب في تمكين CORS على مستوى العالم لجميع وحدات التحكم والعمليات ، فيمكنك إضافة خاصية [EnableCors] إلى ملف STARTUP.CS:

[التجميع: EnableCors (typeof (mypolicy))]]

[assembly: EnableCors(typeof(MyPolicy))]
services.addcors (خيارات => { Options.AddPolicy ("mypolicy" ، السياسة => policy.allowanyorigin (). promanymethod (). }) ؛

services.AddCors(options =>
{
    options.AddPolicy("MyPolicy",
        policy => policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
});
أضف رأسًا مخصصًا

إذا كنت بحاجة إلى تحديد رؤوس مخصصة أخرى في تكوين CORS ، فيمكنك تعديل كائن الخيارات في عبارة app.usecors:

app.Usecors (خيارات => خيارات. . WITHEXPOSEDERS ("X-My-Custom-Header")) ؛

app.UseCors(options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    .WithExposedHeaders("X-My-Custom-Header"));
تمت إضافة الطريقة القسرية باستخدام رأس يدوي

كبديل لاستخدام برنامج CORS المدمج ، يمكنك إضافة الرؤوس المطلوبة يدويًا إلى كل استجابة باستخدام الوسيطة. لا ينصح بهذه الطريقة ، ولكن يمكن أن تكون مفيدة في بعض الحالات ، خاصة عند استخدام رؤوس التفويض.

app.use (async (السياق ، التالي) => { Context.Response.adeders.add ("Access-Control-allow-Origin" ، "*") ؛ Context.Response.adeaders.add ("Access-Control-allow-Methods" ، "Get ، Post ، put ، patch ، delete") ؛ Context.Response.adevers.add ("Access-Control-Caller-Headers" ، "X-Pingother ، نوع المحتوى ، إذن") ؛ في انتظار التالي () ؛ }) ؛

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("Access-Control-Allow-Origin", "*");
    context.Response.Headers.Add("Access-Control-Allow-Methods", "GET, POST, PUT, PATCH, DELETE");
    context.Response.Headers.Add("Access-Control-Allow-Headers", "X-PINGOTHER, Content-Type, Authorization");
    await next();
});
ختاماً

اعتمادًا على متطلباتك المحددة ، هناك عدة طرق لتمكين cors في ASP.NET Core. باتباع الخطوات الموضحة في هذا الدليل ، يمكنك التأكد من التواصل السلس المتقاطع بين التطبيقات الأمامية وواجهة برمجة تطبيقات الويب الخلفية ، مما يسمح بمشاركة البيانات والوظائف عبر المجالات.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3