@Syndr0me

Mixed Content как убрать?

Сервер на php по принципу restfulapi, фронт на vue + axios.
При запросе к API выдает такую ошибку.
Mixed Content: The page at 'https://www.ejja.ru/' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'www.ejja.ru/api'. This request has been blocked; the content must be served over HTTPS.

5c52cf4ca4c1c280669637.png вот первый запрос с данными об авторизации

5c52cf6308158358520141.png вот второй, не знаю что это.

Нигде во фронте нет ссылок с http! За исключением
в html файле.

Сервер при респонсе отдает такие заголовоки

// Allow from any origin
        if (isset($_SERVER['HTTP_ORIGIN'])) {
            // Decide if the origin in $_SERVER['HTTP_ORIGIN'] is one
            // you want to allow, and if so:
            header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
            header('Access-Control-Allow-Credentials: true');
            header('Access-Control-Max-Age: 86400');    // cache for 1 day
            header('content-type: application/json');

        }

        // Access-Control headers are received during OPTIONS requests
        if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
                // may also be using PUT, PATCH, HEAD etc
                header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

            if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
                header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

            exit(0);
        }

        $response = json_encode(['response' => ['status' => $code, "result" => $data]]);
        echo $response; exit;
  • Вопрос задан
  • 2254 просмотра
Пригласить эксперта
Ответы на вопрос 2
Lynn
@Lynn
nginx, js, css
Чудес не бывает. Где-то затесался http. Ищите в js-файлах
Ответ написан
cashalot
@cashalot
Если я вам помог - пометьте мой ответ как решение
Запросы в axios должны быть без последнего слэша. Именно из-за этого и получается такая дрянь. Например, у нас есть 2 метода - index и show. если /users - это index, то /users/1 - это show. Логично было бы сделать это одним запросом и просто подставлять user_id /users/:user_id, но вот когда user_id не будет задан, тогда сработает запрос /users/, именно из-за этого получается такая ошибка. Поэтому нужно адреса подставлять в зависимости от наличия user_id. Типа того:
url: (userId) ? `/users/${userId}` : '/users',
Понимаю, что за год задачу решили наверно ) просто пишу на будущее - как ответ для тех, кто столкнется с этим
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы