Pesquisa de site

javascript - Angular Set-Cookie não funciona no Safari


No meu aplicativo Angular 5 usamos o cliente http para fazer requisições POST e GET. Após o login, o back-end envia um comando para definir o Cookie que pode ser usado para autenticar nas próximas requisições.

Isso parece com:

Set-Cookie: portal_ci_session=XuATFg7Y7gwG3SKff83; path=/; secure; httponly

Eu criei uma biblioteca para fazer uma requisição POST:

const myheader = new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')
const baseUrl = 'https://***/index.php/rest/';

@Injectable()
export class HttpprocessingService {

  constructor(private http: HttpClient,private router: Router) { }

  // do an post request 
  public doPost(url : string,postparameters : any){

    var postbody = new HttpParams();        

    for(var key in postparameters) {
      postbody = postbody.append(key,postparameters[key]);
    }

    return this.http.post(baseUrl+url,postbody,{headers:myheader,withCredentials:true});    

Quando faço uma solicitação POST para o login no Chrome, o Cookie é recebido através do cabeçalho de resposta e automaticamente definido no cabeçalho da solicitação da próxima requisição.

Mas ao usar o Safari, esse mecanismo não funciona. O cabeçalho de resposta com o Set-Cookie é o mesmo, mas na próxima requisição o cabeçalho da requisição está vazio.

O que eu fiz de errado?

Estou executando o Angular no meu localhost:4200.