Я постоянно получал ошибку CORS в браузере:
Cross - Запрос источника заблокирован: та же политика происхождения запрещает чтение удаленного ресурса по адресу http://localhost:81/api/login.php/api/login. (Причина: заголовок CORS «Access-Control-Allow-Origin» отсутствует). Код состояния: 200.
Я установил заголовки как в /etc/apache/apache2.conf, так и в
Я исправил это, обновив файл /etc/apache/apache2.conf:
Код: Выделить всё
Order Allow,Deny
Allow from all
AllowOverride all
Options Indexes FollowSymLinks
Require all granted
Header always set Access-Control-Allow-Origin "http://localhost:5173/"
Header always set Access-Control-Allow-Headers "Authorization"
Header always set Access-Control-Allow-Methods "GET, POST"
Header always set Access-Control-Expose-Headers "Content-Security-Policy, Location"
Header always set Access-Control-Max-Age "600"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
Код: Выделить всё
ServerAdmin webmaster@localhost
DocumentRoot /var/www/my-api
Header set Access-Control-Allow-Origin "http://localhost:5173/"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Я хочу настроить сервер с помощью Access-Control-Allow-Origin: localhost:5173, и он вообще не обновляется после установки заголовков.
Для отладки я попробовал комментируя все эти строки заголовков (теоретически отключая доступ к перекрестному источнику), а затем сбрасывая оба:
- сервер Apache с sudo systemctl reload apache2 в cmd
- Верточная часть PHP с помощью Ctrl + C, а затем снова запустите ее с помощью sudo php -S localhost:81 в cmd
- Vue front закончить с помощью Ctrl + C и затем npm run dev.
Код: Выделить всё
// header('Content-Type: application/json');
// header('Access-Control-Allow-Origin: http://localhost:5173/'); // Allows all origins, can be a specific origin like "https://example.com"
// header('Access-Control-Allow-Methods: GET, POST, OPTIONS');
// header('Access-Control-Allow-Headers: Content-Type, Authorization, Origin');
// header("Access-Control-Allow-Credentials: true");
// header('Cache-Control: no-cache, must-revalidate');
Код: Выделить всё
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Content-Type: text/html
Cache-Control: no-cache
Etag: W/"c8c-4Kjk1ozW+GKK4EON9SiGGxhiMJY"
Date: Wed, 27 Nov 2024 15:26:10 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Я попробовал использовать sudo a2dissite my-app, а затем sudo a2ensite my-app, а затем перезагрузил как внутренний, так и внешний сервер, а также сервер apache2. Он просто не обновляется, и я продолжаю получать заголовок Access-Control-Allow-Origin: *.
Я также пытался настроить модуль для заголовков, но они уже включены:
Код: Выделить всё
$ sudo a2enmod headers
Module headers already enabled
Я не использую файлы .htaccess.
Откуда я могу взять этот Access-Control-Allow-Origin: * откуда? oO'
Я хочу иметь возможность управлять CORS, но у меня это не получается. =\
Подробнее здесь: https://stackoverflow.com/questions/792 ... -being-set
Мобильная версия