Javascript 当来源为http且目标url为https时,如何在本地网络中发出POST请求?

Javascript 当来源为http且目标url为https时,如何在本地网络中发出POST请求?,javascript,jquery,cors,adyen,Javascript,Jquery,Cors,Adyen,我需要从POS(销售点)(http)向支付终端(https)发出POST请求,它们在我的本地网络中连接。当我从邮递员处发出请求时,一切正常,但每当我从POS处发出请求时,我都会收到错误“POST net::ERR\u CERT\u AUTHORITY\u INVALID” 我曾经尝试过使用xhr对象和jquery发出请求,但我总是犯同样的错误 jQuery const settings = { async: true, crossDomain: true, u

我需要从POS(销售点)(http)向支付终端(https)发出POST请求,它们在我的本地网络中连接。当我从邮递员处发出请求时,一切正常,但每当我从POS处发出请求时,我都会收到错误“POST net::ERR\u CERT\u AUTHORITY\u 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);

  });

我希望能够将POS机的POST请求发送到支付终端。

经过一些研究,发现问题与浏览器在提交无效证书时不允许通过HTTPS向localhost发送请求有关。为了在chrome中允许这些具有这些特征的请求,必须转到chrome://flags/ 并启用选项“允许从本地主机加载的资源使用无效证书”

在firefox的例子中,必须允许本地主机上的自签名证书,有一篇关于如何解决这个问题的优秀文章


在我应用了这些更改后,我能够成功地提出请求。

ERR\u CERT\u AUTHORITY\u INVALID表明销售点无法识别签署支付终端SSL证书的机构。这不是编程问题。您需要向POS教授有关权限的知识。