我正在为我的项目使用平均堆栈(angular v1.4.7,node v0.12.7,express 4.9.0)。
最近,我要求ssl证书并将其安装在服务器上,因此我不得不将我的http请求更改为https。
我还将nodejs服务器更改为需要https而不是http,但快速路由停止工作,并且每个请求都返回 net :: ERR_CONNECTION_CLOSED 。以下是一些例子:
对angularjs的请求:
$http({
url: "https://www.urbs.pt:3000/auth/isauth",
method: "GET",
withCredentials: true
}).success(function (data, status, headers, config) {
$scope.isloggedin = data;
}).error(function (data, status, headers, config) {
console.log(data);
console.log(status);
console.log(headers);
console.log(config);
});
我使用https
在端口3000上使用express运行我的nodejs服务器var authenticate = require('./routes/authenticate');
var options = {
key: fs.readFileSync(pathtokey),
cert: fs.readFileSync(pathtocertificate),
ca: fs.readFileSync(pathtoCA),
requestCert: true,
rejectUnauthorized: false
};
var app = express();
var https = require('https').Server(options,app);
/* this part is initialized on bin/www
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
debug('Express server listening on port ' + server.address().port);
});
*/
app.use('/auth', authenticate);
如果我在angularjs请求上使用http协议,并且在nodejs上需要http,一切都按预期工作,所以我猜问题是https请求。我还确认选项配置是正确的。