CORS راهی استاندارد برای دسترسی به منابع موجود روی یک دامنه است. یکی از کاربرد های CORS این است که برای درخواست های بینِ دامنه ای استفاده می شود. به طور پیش فرض، درخواست های متقابل دامنه در وب سرور آپاچی غیر فعال است. شما باید Access Control Allow Origin را تنظیم کنید تا CORS (Cross Origin Resource Sharing) را در آپاچی فعال کنید. با انجام مراحل ذکر شده در این آموزش می توانید به فعال سازی CORS در آپاچی بپردازید. همچنین در این آموزش خواهیم گفت که چطور خطای Access Control Allow Origin را در وب سرور آپاچی رفع کنید.
مراحل زیر را به طور دقیق اجرا کنید تا به راحتی بتوانید CORS را در وب سرور آپاچی فعال کنید. برای این کار 3 مرحله وجود دارد:
برای فعال کردن CORS در آپاچی باید ماژول headers را فعال کنید.
Ubuntu/Debian
در لینوکس ubuntu/debian، ترمینال را باز کرده و دستور زیر را برای فعال کردن ماژول هدر وارد کرده و اجرا کنید.
$ sudo a2enmod headers
CentOS/Redhat/Fedora
در لینوکس CentOS/Redhat/Fedora، فایل پیکربندی آپاچی httpd.conf را باز کنید.
LoadModule headers_module modules/mod_headers.so
در مرحله بعد، بسته به نیاز خود، دستورالعمل “Header add Access-Control-Allow-Origin *” را به فایل پیکربندی اصلی آپاچی یا فایل htaccess. یا فایل پیکربندی میزبان مجازی اضافه کنید. اگر آن را به فایل پیکربندی اصلی خود اضافه کنید، CORS برای همه وب سایت های سرور شما فعال می شود. اگر آن را به فایل htaccess. یا فایل پیکربندی میزبان مجازی اضافه کنید، فقط برای یک وب سایت فایل فعال خواهد شد. برای مثال:
<Directory /var/www/html>
...
Header set Access-Control-Allow-Origin "*"
...
</Directory>
...
Header add Access-Control-Allow-Origin "*"
...
<VirtualHost *:443>
...
Header add Access-Control-Allow-Origin "*"
...
</VirtualHost>
اگر می خواهید CORS را برای همه وب سایت های خود فعال کنید، یعنی درخواست های متقابل دامنه را از همه وب سایت ها بپذیرید، دستور زیر را وارد و اجرا کنید.
Header add Access-Control-Allow-Origin *;
اگر می خواهید CORS را برای یک دامنه وب سایت (مثلا example.com) فعال کنید، آن دامنه را به جای کاراکتر * قرار دهید.
Header add Access-Control-Allow-Origin "*";
Header add Access-Control-Allow-Origin "example.com";
اگر می خواهید CORS را برای چندین دامنه فعال کنید (مانند example1.com، example2.com،example3.com)، آن ها را جداگانه و پشت سر هم وارد و اجرا کنید.
Header add Access-Control-Allow-Origin "example1.com";
Header add Access-Control-Allow-Origin "example2.com";
Header add Access-Control-Allow-Origin "example3.com";
اگر می خواهید CORS را برای لوکال هاست فعال کنید، 127.0.0.1 یا localhost را به جای نام دامنه در دستور زیر قرار دهید.
Header add Access-Control-Allow-Origin "localhost";
برای اعمال تغییرات، با دستور زیر وب سرور آپاچی را مجددا راه اندازی کنید.
-------------- On Debian/Ubuntu --------------
# apache2 -t
# systemctl restart apache2.service
-------------- On RHEL/CentOS/Fedora --------------
# httpd -t
# systemctl restart httpd.service
می توانید از ابزار های آنلاین رایگان مانند Test CORS برای بررسی اینکه آیا وب سایت شما CORS را می پذیرد یا خیر استفاده کنید.
منبع: ubiq.co