Как обойти ошибку CORS при перенаправлении 307

Я использую редирект 307 mod_rewrite править в моем .htaccess перенаправить все /api/... запросы к apiHandler.phpи у меня проблемы с CORS.

мой .htaccess

RewriteEngine On
RewriteRule ^api/(.*)$ /apiHandler.php [NC,R=307]

мой apiHandler.php

<?php

header("Access-Control-Allow-Origin: http://localhost:4200");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Headers: Content-Type");
header("Content-Type: application/json");

...

?>

Всякий раз, когда я делаю запрос API в моем интерфейсе, я получаю ошибку CORS,

"...has been blocked by CORS policy: No 'Access-Control-Allow-Origin` header is present on the request resource."

корс проблема

пока у меня конкретно этот заголовок есть в моем apiHandler.phpЯ не знаю, в чем проблема.

После небольшого исследования я узнал, что URL-адрес перенаправления должен также включать Access-Control-Allow-Origin заголовок, иначе браузер остановится прямо здесь с попыткой междоменного запроса. Но я уже пытался также добавить эти заголовки в мой .htaccess без удачи

Есть идеи?

1

Решение

Спасибо @sideshowbarker! Решением моей проблемы было удаление заголовков из моего apiHandler.php и добавив их в мой .htaccess,

Header always set Access-Control-Allow-Origin "http://localhost:4200"Header always set Access-Control-Allow-Credentials "true"Header always set Access-Control-Allow-Headers "Content-Type"Header always set Content-Type "application/json"
RewriteEngine On
RewriteRule ^api/(.*)$ /apiHandler.php [NC,R=307]

Обратите внимание на использование Header always set ... вместо Header set ..., это сообщение объясняет разницу между ними

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]