我从前端(基于Vue)到另一台服务器上的公司API(服务器使用SSL证书)有一个标准的HTTPS Axios请求。
testApi() {
axios.get('https://rng-hub2.staging.rng:8001/rng/3/')
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})
.finally(function () {
// always executed
});
},
在Chrome中,错误如下所示:
正如我在想的那样,在Netwerk->响应标签下的浏览过的开发工具中,我也应该看到一个错误,这对于Chrome来说是正确的,但对于Firefox来说却并非如此。 因此Chrome向我显示了:
但是在Firefox中,我以完全正确的格式接收数据:
您是否知道如何正确检索此数据并将其分配给.then节中的响应变量?
关于跨域请求被阻止的错误:API的服务器管理员告诉我,他已经将我的IP添加到了CORS“可信列表”中。但是我不确定,因为根据这篇文章:https://jonhilton.net/cross-origin-request-blocked/ 在我的响应标题中,我应该收到一个带有我的本地IP的附加标题,例如:
Access-Control-Allow-Origin: http://192.168.32.44
但是我不是。
该代理人员也没有工作: How to deal with CORS error on Vue CLI 3?
请给我提示我在做什么错
答案 0 :(得分:0)
找到了解决方案。问题比我想的还要深。简短的答案是:如果您在本地网络中使用不同的API服务器,则它们可能已通过内部公司CA(证书颁发机构)的认证,能够通过HTTPS协议进行通信。因此,您需要的是,从服务器管理员那里请求给您private_key,您可以使用该密钥将所有请求签名到特定的API。令人吃惊的是,它看起来像这样:
new GuzzleClient(['verify' => '/path/to/self-signed/cert.pem']);