PHP Backend API с React FrontEnd - проблемы с заголовком CORS, когда React запрашивает API, но не при непосредственном дPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP Backend API с React FrontEnd - проблемы с заголовком CORS, когда React запрашивает API, но не при непосредственном д

Сообщение Anonymous »

Я работаю над созданием системы досок объявлений с серверной частью PHP в качестве API и React для внешнего интерфейса, который отправляет запросы к API PHP для получения данных.
В моем коде PHP в мой класс CoreMiddleware:

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

/**
* Middleware for handling CORS.
*
* @param Request $request the request object
* @param callable $next the next middleware to execute
* @return void
*/
public function handle(Request $request, callable $next) {
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 86400');
header('Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method,Access-Control-Request-Headers, Authorization');
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') exit;
return $next($request);
}
Я установил все заголовки для CORS. Когда React отправляет запрос к PHP API, заголовки COR не отправляются. Посмотрите снимок сетевой информации в Chrome:
React Network Snapshot
Теперь, если я обращаюсь к API напрямую в веб-браузере, я получаю COR-заголовки. См. снимок ниже:
API PHP доступен непосредственно в снимке Chrome.
И ниже приведен код React для запроса данных из API:

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

/**
* Constructor that sets up this class.
*/
constructor() {
this.apiBaseUrl = process.env.REACT_APP_API_BASE_URL;
console.log(process.env);
this.client = axios.create({
baseURL: this.apiBaseUrl,
headers: {
'Content-Type': 'application/json',
},
withCredentials: true
});
}

/**
* Gets data from the API.
* @param {string} endpoint the API endpoint
*/
getData(endpoint) {
return this.client.get(endpoint)
.then(response => response.data)
.catch(error => this.handleError(error));
}
Как я могу заставить заголовки COR отправляться, когда React отправляет запрос к PHP API? Я редко когда-либо задаю вопросы здесь, но, кажется, я не могу понять это хоть убей.
Я попробовал добавить заголовки CORS в файл .htaccess, конфигурацию Apache. файл непосредственно через PHP. После этого я ожидал, что проблема с заголовком COR будет решена.

Подробнее здесь: https://stackoverflow.com/questions/788 ... quests-fro
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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