Заголовки Apache2 CORS не обновляются после установкиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Заголовки Apache2 CORS не обновляются после установки

Сообщение Anonymous »

Я размещаю как внутреннюю, так и переднюю часть на разных хостах Debian 12 (книжный червь). Бэкэнд представляет собой API PHP 8.2.26 на localhost:81 с использованием apache2. Интерфейс — это Vue, работающий с локального хоста: 5173.
Я постоянно получал ошибку 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]


А также обновить VirtualHost /etc/apache/sites-available/my-api.conf (я знаю, что нет необходимости обновлять как apache2.conf, так и site-available/my-api .conf, но я был в отчаянии):

Код: Выделить всё

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

Он вообще не обновлялся, и я продолжал получать ошибку CORS. После того, как я отключил и снова включил расширенную защиту от отслеживания в Firefox, она похоже обновилась, разрешив Access-Control-Allow-Origin: * (как было установлено тогда).< /p>
Я хочу настроить сервер с помощью 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.
Заголовки, установленные в файле php api, также закомментированы:

Код: Выделить всё

// 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');
Как ни странно, я продолжаю получать заголовок Access-Control-Allow-Origin: *. Кажется, он просто не обновляется всякий раз, когда я обновляю файлы apache2.conf и my-api.conf. Вот что я получаю от этой команды Curl:

Код: Выделить всё

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
Я продолжаю получать сообщение Access-Control-Allow-Origin: * даже после закомментирования строк заголовка в apache2.conf и my-app.conf, которые разрешают перекрестное происхождение. доступ.
Я попробовал использовать sudo a2dissite my-app, а затем sudo a2ensite my-app, а затем перезагрузил как внутренний, так и внешний сервер, а также сервер apache2. Он просто не обновляется, и я продолжаю получать заголовок Access-Control-Allow-Origin: *.
Я также пытался настроить модуль для заголовков, но они уже включены:

Код: Выделить всё

$ sudo a2enmod headers
Module headers already enabled
Каждый раз, когда я вношу какое-либо из этих изменений, я сбрасываю как серверную часть, так и внешний интерфейс, а также apache2, но продолжаю получать сообщение Access-Control-Allow-Origin: *. Он не обновляется.
Я не использую файлы .htaccess.
Откуда я могу взять этот Access-Control-Allow-Origin: * откуда? oO'
Я хочу иметь возможность управлять CORS, но у меня это не получается. =\

Подробнее здесь: https://stackoverflow.com/questions/792 ... -being-set
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»