Как подменить домен при ajax запросе?

Ссылка скопирована
2 ответов

Api отдает данные только при запросе с определенного домена.
Как получать эти данные и обойти cors при запросах с localhost ?

пока решение такое:
- devServer в vue.config.js с указанием нужного хоста
- добавление этого хоста в hosts
- расширение Allow CORS: Access-Control-Allow-Origin или запуск хрома с флагами, чтобы обойти cors

Дополнительно:

Mesuti, отличный план )) Какой смысл передавать заголовок, который должен возвратить бэкенд?

  • Алексей Ярков, а можно развернуть? хочу работать локально с api.duma.gov.ru/api
  • Способов несколько.

    1. Поднять локальный сервер и запросы проксировать через него.

    2. Написать расширение для браузера и при помощи него добавлять нужный Referer. Либо использовать для запросов контент-скрипт с целевого сайта.

    • оба варианта не простые, кажется должно быть готовое расширение для хрома, которое все это делает из коробки
    • tenaro, есть такие:

      https://addons.mozilla.org/ru/firefox/addon/cors-u...

      https://addons.mozilla.org/ru/firefox/addon/access...

      Но насколько им можно доверять, я хз. Лучше напишите свое.

    Крайне паршивое решение. Используйте свой бэкенд и патерн BFF https://medium.com/mobilepeople/backend-for-fronte...

    почему так? Что бы ваш токен не был доступен никому кроме вашего сервера

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Андрей PHP Ответ

    Для подмены домена при ajax запросе, вам необходимо использовать прокси-сервер или CORS (Cross-Origin Resource Sharing).

    Прокси-сервер - это промежуточный сервер, который принимает запросы от клиента и передает их на сервер, обмениваясь информацией между ними. Таким образом, вы можете подменить домен на прокси-сервере и передать запрос на нужный сервер.

    Пример использования прокси-сервера на PHP:

     'value1', 'key2' => 'value2');

    $options = array(
    'http' => array(
    'header' => "Content-type: application/x-www-form-urlencoded\r

    Другие ответы (1) Ответить на вопрос
    Павел Админов

    Для того чтобы подменить домен при ajax запросе, можно воспользоваться методом, который позволяет изменить домен на лету. Например, если у вас есть основной домен example.com, и вам нужно отправить ajax запрос на другой домен subdomain.example.com, вы можете использовать следующий подход.

    1. Создайте функцию, которая будет заменять домен в URL запроса:

    ```php
    function replaceDomain(url, newDomain) {
    var parser = document.createElement('a');
    parser.href = url;
    parser.hostname = newDomain;
    return parser.href;
    }
    ```

    2. Используйте эту функцию при отправке ajax запроса:

    ```php
    var originalUrl = 'http://example.com/api/data';
    var newDomain = 'subdomain.example.com';
    var newUrl = replaceDomain(originalUrl, newDomain);

    $.ajax({
    url: newUrl,
    type: 'GET',
    success: function(response) {
    console.log(response);
    },
    error: function(error) {
    console.error(error);
    }
    });
    ```

    Этот код поможет вам подменить домен при ajax запросе. Просто укажите оригинальный URL запроса и новый домен, и функция заменит домен в URL перед отправкой запроса. Таким образом, вы сможете отправить ajax запрос на другой домен без необходимости изменять сам URL вручную.

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно