Как я могу сделать POST-запрос в моей локальной сети, если источником является http, а целевым URL-адресом является https? - PullRequest
0 голосов
/ 15 мая 2019

Мне нужно сделать запрос POST от POS (точки продажи) (http) к платежному терминалу (https), они подключены в моей локальной сети.Когда я делаю запрос от Почтальона, все работает правильно, но всякий раз, когда я делаю запрос из POS, я получаю ошибку "POST https://myIPaddress:8443/nexo/ net :: ERR_CERT_AUTHORITY_INVALID"

Я пытался сделать запрос, используя xhrобъект и использование jquery, но я продолжаю получать ту же ошибку

jQuery

const settings = {
      async: true,
      crossDomain: true,
      url: 'https://myIPAdress:8443/nexo/',
      method: "POST",
      data: JSON.stringify({
        data
      })
    };

    $.ajax(settings).done(function (response) {
      console.log(response);
    });

JS / xhr

var data = JSON.stringify({
      data
    });

    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;

    xhr.addEventListener("readystatechange", function () {
      if (this.readyState === 4) {
        console.log(this.responseText);
      }
    });

    xhr.open("POST", "https://myIPAdress:8443/nexo");

    xhr.send(data);

  });

Я хотел бы иметь возможность отправить запрос POSTот POS до платежного терминала.

1 Ответ

1 голос
/ 15 мая 2019

После некоторых исследований проблема оказалась в том, что браузер не разрешал запросы локальному хосту через HTTPS, когда был представлен недействительный сертификат. Чтобы разрешить эти запросы с этими характеристиками в chrome, нужно перейти в chrome: // flags / и включить опцию «Разрешить недействительные сертификаты для ресурсов, загруженных с локального хоста».

В случае с Firefox аналогичным, нужно разрешить самоподписанные сертификаты на Localhost, здесь есть отличная статья о том, как решить эту проблему здесь .

После того, как я применил эти изменения, я смог сделать успешные запросы.

...