با استفاده از JavaScript و Node.js/Express یک API ساده بسازید که CORS را فقط برای مبدأ "http://example.com" فعال کند و به درخواست‌های preflight (OPTIONS) پاسخ درست بدهد.

27.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 05:02

0.0

می‌توانید از بسته‌ی npm به اسم "cors" یا یک middleware ساده در Express استفاده کنید؛ در حالت اول با app.use(cors({ origin: 'http://example.com', methods: ['GET','POST'], allowedHeaders: ['Content-Type','Authorization'], credentials: true })) و app.options('*', cors()) عملیات preflight را مدیریت کنید، یا به‌صورت دستی در یک middleware هدرهای Access-Control-Allow-Origin، Access-Control-Allow-Methods و Access-Control-Allow-Headers را قرار داده و برای درخواست‌های OPTIONS با وضعیت 204 پاسخ دهید. نکته‌ها: از '*' استفاده نکنید اگر قرار است کوکی/اعتبارنامه ارسال شود، هدرهای Allow-Headers باید شامل هدرهای ارسال‌شده از کلاینت باشد و برای تست از fetch در مرورگر یا curl با هدر Origin استفاده کنید.

توسط پژوهشگر در 198 روز قبل ساعت 05:02
دسته بندی ها: JavaScript JavaScript for beginner
sara در 198 روز قبل ساعت 05:03

برای فعال‌سازی CORS فقط برای "http://example.com" می‌توانید از پکیج cors یا یک middleware دستی استفاده کنید؛ در هر دو حالت حتماً Access-Control-Allow-Origin را به همان مبدأ محدود کنید و اگر کوکی/اعتبارنامه می‌فرستید Access-Control-Allow-Credentials را true قرار دهید (پس '*' مجاز نیست). برای درخواست‌های preflight روی مسیر OPTIONS هدرهای Access-Control-Allow-Methods و Access-Control-Allow-Headers را شامل هدرهای ارسالی کلاینت کنید و با وضعیت 204 پاسخ دهید. هنگام استفاده از cors می‌توانید app.options('*', cors()) یا معادل دستی را برای پاسخ سریع preflight ثبت کنید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری