Вызов REST работает с axios, но не с HttpClient в проекте Angular 5 - PullRequest
0 голосов
/ 21 ноября 2018

Код Service.ts

import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
})
export class ClientService {

  constructor(private http: HttpClient) { }

  getClients() {
    return this.http.get<any>('http://localhost:8080/admin-api/client?count=15&page=0&q=', { withCredentials: true })
  }
}

Component.ts код

import { Component, OnInit } from '@angular/core';
import { LazyLoadEvent } from 'primeng/api'

import { ClientService } from '../../services/client.service';


@Component({
  selector: 'app-client',
  templateUrl: './client.component.html',
  styleUrls: ['./client.component.css']
})

export class ClientComponent implements OnInit {

constructor(private clientService: ClientService) { }

ngOnInit() {
    this.loading = true

    this.clientService.getClients().subscribe(data => {
      console.log(data)
    }, error => {
      console.log(error)
    })

  }
}

Ошибка, которую я получаю при запуске этого The browser console

Я не понимаю, почему тот же запрос может быть успешно выполнен с использованиемaxios, но не с HttpClient в Angular.

1 Ответ

0 голосов
/ 24 января 2019

Очевидно, Axios добавляет заголовок "X-XSRF-TOKEN", когда обнаруживает cookie-файл "XSRF-TOKEN", тогда как HttpClient в Angular этого не делает.

Таким образом, вы должны прочитать значениеФайл cookie «XSRF-TOKEN» и задайте его в качестве заголовка «X-XSRF-TOKEN» при отправке запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...