<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

CORS Anyware на PHP

CORS Anyware на PHP

В данной статье мы поговорим с Вами, что такое CORS, где оно используется и реализуем его.

Итак, согласно документации Cross-Origin Resource Sharing (CORS) — механизм, использующий дополнительные HTTP-заголовки, чтобы дать возможность агенту пользователя получать разрешения на доступ к выбранным ресурсам с сервера на источнике (домене), отличном от того, что сайт использует в данный момент.

Т.е. когда вы делаете, например, Ajax запрос с Вашего домена на другой, то браузер Вам не позволит это сделать, если сервер из которого Вы запрашиваете ресурс, не передаст определенные заголовки, тем самым явно сообщая, что он (сервер) готов отдать запрашиваемую информацию.

И чтобы скрипт на стороне браузера мог получить необходимые данные, сервер должен ответить определенными заголовками, как в пример далее.

<?php
    
    
    // загружает файл по переданному URL
    function get_url_content($url) {
        
        // настраиваем запрос
        $opts = [
            'http' => [
                'method' => "GET",
                'header' => "Accept-language: en\r\n" .
                        "Cookie: foo=bar\r\n" .
                        "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36 \r\n"
            ]
        ];

        $context = stream_context_create($opts);

        // пытаемся получить ресурс с удаленного URL
        $content = @file_get_contents($url, false, $context);
        
        return $content;
        
    }
    
    
    // заголовки CORS
    function set_cors_headers()
    {
        // массив, которые содержит список разрешенных источников запроса
        $allowedOrigins = array(
          'http://myrusakov.ru'
        );
         
        if (isset($_SERVER['HTTP_ORIGIN']) && $_SERVER['HTTP_ORIGIN'] != '') {
          foreach ($allowedOrigins as $allowedOrigin) {
            if (preg_match('#' . $allowedOrigin . '#', $_SERVER['HTTP_ORIGIN'])) {
            
                // устанавливаем необходимые заголовки
                // теперь мы можем обращаться к указанному URL посредством AJAX c домена myrusakov.ru
                header('Access-Control-Allow-Origin: ' . $_SERVER['HTTP_ORIGIN']);
                header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
                header('Access-Control-Max-Age: 1000');
                header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
                break;
            }
          }
        }

    }
    
    
    
    // выводим заголовки
    set_cors_headers();
    
    // делаем запрос
    print(get_url_content($_GET['url']) ?: 'пусто' );
    
    

Таким образом, сервер, который отдает данные заголовки, явно дает понять, что он готов отдать запрашиваемые Ajax-ом данные, в противном случае, JavaScript запрос закончится ошибкой.

Пример приложения работающего с помощью вышеуказанного скрипта (посмотрите на запросы в консоли)

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

ICFAQ ICFAQ 14.07.2020 15:09:54

Здравствуйте, можете сделать статью о том как сделать добавление новостей на сайт через php

Ответить

Castels Castels 14.07.2020 17:12:22

Здравствуйте! Сделаем. Следите за почтовой рассылкой

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.