Как передать параметры в заголовках - PullRequest
0 голосов
/ 30 мая 2019

Мне нужно вызвать API из моего приложения Angular Node. Для этого мне нужно передать имя пользователя и пароль вместе с запросом заголовка. Как передать параметры? Я попробовал ниже код

От службы Angular,

checkUserApi(url: string): Observable<any> {    
   const headers = new HttpHeaders()
    .set('Authorization', 'my-auth-token')
    .set('Content-Type', 'application/json')
    .set('userName','prismtest')
    .set('password','12345678');
   return this.http.post('/upload/checkUserApi/', { headers })
  .map((response: Response) => {
    console.log(response);
   return response;
   })
}

в узле,

router.post('/checkUserApi',function(req,res,next){
var proxyUrl = 'http://cors-anywhere.herokuapp.com/';

Request.post({
  "headers": { "userName": "prismtest","password":"12345678" },
  "url": proxyUrl+"https://example.com",
  "body": {}
  }, (error, response, body) => {  

  if(error) {
   return console.log(error);
  }  
   res.send(response);
  });
  });

Ответы [ 4 ]

0 голосов
/ 30 мая 2019
const headerOptions = {
     headers : new HttpHeaders({
       'Constent-Type' : 'application/json',
       'Authorization : 'you token here'
     })
   }

http.post('you action', {body Params}, headerOptions, function(res){
console.log('your respose is ', res);
})
0 голосов
/ 30 мая 2019

Вы можете сделать это с помощью перехватчиков, которые являются Angular Service. это должно быть полезно: Как передать параметр в HttpInterceptor?

0 голосов
/ 30 мая 2019

Можете ли вы попробовать ниже код, следующий

/* SERVICE ANGULAR*/
import {Injectable} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {Observable,of} from 'rxjs';
import { map,catchError } from 'rxjs/operators';
import {User} from '../_models';

const httpOptions = {
    headers:new HttpHeaders({'Content-Type':'application/json'})
};

const API_URL = "http://localhost/app/api";
@Injectable({
    providedIn:'root',
})

export class UserService{
    constructor(private http:HttpClient){}

    /**
     * POST LOGIN USER
     */
    login(user: any) {
        return this.http.post<any>(API_URL+"/login", user,httpOptions)
            .pipe(map(user => {
                return user;
            }));
    } 
}

/*NODEJS*/
/* 1) install $ npm install body-parser --save*/
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies */
/ POST http://localhost:8080/api/users
// parameters sent with 
app.post('/api/login', function(req, res) {
    var user_id = req.body.id;
    var token = req.body.token;
    var geo = req.body.geo;

    res.send(user_id + ' ' + token + ' ' + geo);
});

Вы видели: Используйте ExpressJS для получения параметров URL и POST

Угловое состояние входа + Laravel

0 голосов
/ 30 мая 2019

Вы можете передать параметры формы как второй атрибут для отправки запроса:

checkUserApi(url: string): Observable<any> {    
   const headers = new HttpHeaders()
      .set('Authorization', 'my-auth-token')
      .set('Content-Type', 'application/json');

      return this.http.post('/upload/checkUserApi/', {username: 'prismtest', password: '123'}, { headers })
         .map((response: Response) => {
           console.log(response);
           return response;
          })
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...