gpt4 book ai didi

javascript - NodeJS + Express 使用 fetch() : How to bypass "Your connection is not private" in Javascript?

转载 作者:太空宇宙 更新时间:2023-11-03 13:46:54 25 4
gpt4 key购买 nike

目前我有一个 NodeJS + ExpressJS 客户端服务器设置,它对后端服务器进行 API 调用。但是每当我这样做时,我首先必须直接转到 API 后端服务器的 URL 并查看以下页面,然后转到 Advanced -> Proceed to https://backendserver.com:8080(不安全),以便能够无错误地进行 API 调用。

enter image description here

有没有办法始终允许它 Proceed to https://backendserver.com:8080 而无需通过浏览器手动执行?

下面是我如何使用 fetch() 进行 API 调用:

  loggingIn(userInfo) {

var userInfoBody = {
'username': `${userInfo.username}`,
'password': `${userInfo.password}`
}

var configuration = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userInfoBody)
}

return function(dispatch) {
fetch('https://backendserver.com:8080/creds', configuration)
.then(response => response.json())
.then(response => {
console.log('Success and response is', response)
})
.catch((error) => {
console.log("Error: ", error)
})
}

我的 NodeJS + Express 设置如下:

var express = require('express');
var cors = require('cors');
var path = require('path');
var config = require('../webpack.config.js');
var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var webpackHotMiddleware = require('webpack-hot-middleware');
var app = express();
var compiler = webpack(config);

app.use(cors());

app.use(webpackDevMiddleware(compiler, {noInfo: true, publicPath: config.output.publicPath}));

app.use(webpackHotMiddleware(compiler));

app.use(express.static('./dist'));

app.use('/', function (req, res) {
res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.sendFile(path.resolve('client/index.html'))
})

var port = 3000;

app.listen(port, function(error) {
if (error) throw error;
console.log("Listening to ", port);
})

最佳答案

这里通常只有一种合适的解决方案:使用浏览器信任的服务器证书。

如果您有公共(public)服务器,您将需要从受信任的证书颁发机构获得证书。为此,Let's Encrypt是一项很棒(且免费)的服务,并且letsencrypt-express将其与 Express 很好地集成。

如果您有私有(private)服务器(如开发或测试服务器,或仅由少数浏览器使用的服务器),您可以只使用自签名证书并将其添加为受信任的您的浏览器或操作系统中的证书。

关于javascript - NodeJS + Express 使用 fetch() : How to bypass "Your connection is not private" in Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com