当源为 http 且目标 url 为 https 时,如何在我的本地网络中发出 POST 请求?
How can i make a POST request in my local network when the origin is http and the target url is https?
我需要从 POS(销售点)(http) 向支付终端 (https) 发出 POST 请求,它们连接在我的本地网络中。当我从 Postman 发出请求时,一切正常,但每当我从 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 发送到支付终端。
经过一番研究,发现该问题与浏览器在提供无效证书时不允许通过 HTTPS 向本地主机发出请求有关。为了在 chrome 中允许这些具有这些特征的请求,必须转到 chrome://flags/ 并启用选项 "Allow invalid certificates for resources loaded from localhost."
在 firefox 的情况下与其类似,必须在本地主机上允许 Self-Signed 证书,有一篇关于如何解决此问题的优秀文章 here。
应用此更改后,我能够成功发出请求。
我需要从 POS(销售点)(http) 向支付终端 (https) 发出 POST 请求,它们连接在我的本地网络中。当我从 Postman 发出请求时,一切正常,但每当我从 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 发送到支付终端。
经过一番研究,发现该问题与浏览器在提供无效证书时不允许通过 HTTPS 向本地主机发出请求有关。为了在 chrome 中允许这些具有这些特征的请求,必须转到 chrome://flags/ 并启用选项 "Allow invalid certificates for resources loaded from localhost."
在 firefox 的情况下与其类似,必须在本地主机上允许 Self-Signed 证书,有一篇关于如何解决此问题的优秀文章 here。
应用此更改后,我能够成功发出请求。