با استفاده از 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 استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای فعالسازی 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 ثبت کنید.
گزارش