یک سرور ساده Node.js با Express بنویسید که CORS را طوری پیکربندی کند که فقط درخواستهای origin برابر با 'http://example.com' با متدهای GET و POST و هدرهای 'Content-Type' و 'Authorization' پذیرفته شوند و درخواستهای preflight (OPTIONS) را بهدرستی پاسخ دهد.
15.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 03:33 0.0
میتوانید از بستهی npm 'cors' یا یک middleware دستی در Express استفاده کنید: مقدار Access-Control-Allow-Origin را به 'http://example.com' محدود کنید، Access-Control-Allow-Methods را حاوی GET و POST قرار دهید و Access-Control-Allow-Headers را شامل 'Content-Type' و 'Authorization' کنید؛ برای درخواستهای OPTIONS پاسخ سریع با هدرهای مناسب برگردانید. برای تست از fetch در مرورگر یا curl (مثلاً درخواست OPTIONS با هدرهای موردنظر) استفاده کنید و هنگام نیاز credentials را با Access-Control-Allow-Credentials مدیریت کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی میتوانید از بسته npm 'cors' یا یک middleware ساده در Express استفاده کنید که Access-Control-Allow-Origin را دقیقاً به 'http://example.com' محدود کند و Access-Control-Allow-Methods را شامل GET و POST و Access-Control-Allow-Headers را شامل 'Content-Type' و 'Authorization' کند؛ درخواستهای OPTIONS باید با این هدرها و وضعیت 204/200 پاسخ سریع داده شوند. اگر قصد ارسال کوکی/credentials دارید، حتماً Access-Control-Allow-Credentials را true قرار دهید و در این حالت از '*' استفاده نکنید چون مرورگرها آن را نمیپذیرند. برای اشکالزدایی با fetch در مرورگر یا curl (مثلاً یک OPTIONS با هدرهای موردنظر) تست کنید و لاگ preflightها را بررسی کنید تا مشکلات سیاست CORS مشخص شوند. همچنین مراقب باشید که محدود کردن origin امنیت را تقویت میکند اما در صورت نیاز به چند origin از whitelist استفاده کنید.
گزارش