یک سرور ساده Node.js با Express بسازید که یک مسیر API مانند /data ارائه دهد و CORS را طوری پیکربندی کند که فقط درخواستهای از origin مشخص (مثلاً http://localhost:3000) را با ارسال کوکی/اعتبارنامه بپذیرد و پاسخ پیشپرواز (preflight) را نیز مدیریت کند.
3.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:28 0.0
برای حل این مسئله از Node.js و فریمورک Express استفاده کنید و بستهٔ npm بهنام cors را نصب کنید؛ سپس در تنظیمات cors مقدار origin را به آدرس مورد نظر محدود و گزینه credentials را true قرار دهید و هدرها و متدهای مجاز را مشخص کنید. برای مدیریت پیشپرواز، از app.options برای مسیر مربوطه استفاده کنید یا cors را بهعنوان middleware عمومی اضافه کنید. نکتهها: هنگام استفاده از credentials از '*' برای origin استفاده نکنید، origin را از متغیرهای محیطی بخوانید تا قابل تغییر باشد و برای تست در مرورگر از fetch با گزینه credentials: 'include' استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته خوب این است که origin را از متغیر محیطی بخوانید و با گزینه credentials: true در پیکربندی cors محدود کنید تا کوکیها به مبدا مجاز ارسال شوند. فراموش نکنید که هرگز از '*' به عنوان origin در صورت استفاده از credentials استفاده نکنید و هدر Access-Control-Allow-Credentials را بررسی کنید. برای مدیریت preflight، اضافه کردن cors middleware به کل اپ یا استفاده از app.options برای مسیر خاص، هر دو کارآمدند و پذیرفتهاند. برای تست در مرورگر، درخواست fetch را با credentials: 'include' انجام دهید تا رفتار واقعی کوکیها را ببینید.
گزارش