发布请求使用HttpClient Angular 5给出401未经授权的用户错误

时间:2018-06-24 18:51:17

标签: post angular5 http-status-code-401 angular-httpclient

在我的angular 5应用程序中,我有如下所示的get和post请求:

获取请求:

constructor(private httpClient:HttpClient){
this.httpClient.get(this.url_string,{ withCredentials: true }).subscribe(data => {
this.name = data;  }) }

发布请求:

this.httpClient.post(this.url_string,this.data_request,{ withCredentials: true }).subscribe(
          data => {
    //doing something with data});

在后端,我将Node服务与node-sspi结合使用,以从请求中获取用户名。

节点服务:

var express = require('express');
var app = express();
var http = require('http');
var bodyParser = require('body-parser');
const fs = require('fs');

app.use(function(req, res, next) { //allow cross origin requests
    res.setHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS, DELETE, GET");
    res.header("Access-Control-Allow-Origin", "http://localhost/Sample");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(function (req, res, next) {
  var nodeSSPI = require('node-sspi')
  var nodeSSPIObj = new nodeSSPI({
    retrieveGroups: true
  })
  nodeSSPIObj.authenticate(req, res, function(err){
    res.finished || next()
  })
})


app.get('/sign', function fnn(request, response) {

response.send(request.connection.user);


});

app.post('/upload', function fnn1(request, response) {

//doing something

});

我的问题是所有get请求都工作正常。但是,当我使用发布请求时,出现错误401(未经授权的用户)。

更多信息:

我正在使用ng buid --prod --base-href / Sample /部署我的角度应用程序 并将其部署到默认站点上的IIS

在同一台计算机上,我已经使用NSSM部署了Node Service。

请指导我哪里错了。

谢谢。

0 个答案:

没有答案