Angular, не удалось изменить заголовок рефери - PullRequest
1 голос
/ 24 февраля 2020

Я обращаюсь к сторонней службе через HttpClient Angular.
Перед написанием кода я провел тест с Postman, если смог получить доступ к этой сторонней службе. И я заметил, что я должен установить Referer для имени домена третьего pary, чтобы получить успешный ответ от третьего лица. Поэтому, чтобы получить успешный ответ, я должен сообщить третьей стороне, что этот запрос исходит из указанного c URL.

Проблема в том, что я не могу установить заголовок Referer из angular. Можно ли установить заголовок реферира с angular? Как мне добиться изменения заголовка реферира? Я упростил код, удалив бизнес-логи c. Вот что я пытаюсь сделать, чтобы достичь этого.

    var serviceUrl = "https://xxx.yyy.zzz";
    let httpOptions = {
      headers: new HttpHeaders({
        'Referer': 'https://xx.yyy.xx'
      })
    };
    let formData = new FormData();
    formData.append("x","z");
    formData.append("y","z");


    this.httpClient.post(serviceUrl,formData,httpOptions).subscribe(response => {
      console.log(response);
    });

Ответы [ 3 ]

1 голос
/ 24 февраля 2020

Можно ли установить заголовок реферира на angular?

Нет. Referer - это имя запрещенного заголовка (в контексте установки заголовка запроса из JS).

Это было бы серьезной проблемой безопасности, если бы это было возможно.

0 голосов
/ 24 февраля 2020

Я не смог изменить заголовок реферера с angular, указав заголовок в запросе httpclient.

Но я нашел обходной путь, который отлично решает мою проблему. Я установил расширение chrome: ModHeader (ссылка -> https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj).

После завершения установки расширения. Я указал заголовок запроса, который хочу добавить. А также я указал фильтр, для которого будут добавляться заголовки запросов uri. Ниже приведено изображение плагина. Вам просто нужно настроить фильтр URI, который вы хотите добавить эти заголовки. enter image description here

0 голосов
/ 24 февраля 2020

Это потому, что браузер пользователя вашего приложения angular не позволит изменить заголовок реферера. Если вы хотите изменить его на произвольное значение, вам понадобится доступ к плагину браузера или к другому приложению, установленному на их компьютере.

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

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