Angular WithCredentials не работает для POST, PUT - PullRequest
0 голосов
/ 02 мая 2018

Я работаю над сайтом Angular с:

• Сервер .Net Framework на локальном хосте / тест

• клиент на локальном хосте: 4200

У меня работает аутентификация cookie, и мои запросы GET работают нормально.

   this.httpClient.get<Test>('dummyUrl', { withCredentials: true });

В моем файле web.config для сервера у меня есть следующее.

    <add name="Access-Control-Allow-Credentials" value="true"/>
    <add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
    <add name="Access-Control-Allow-Methods" value="*" />

Учитывая эту настройку, я ожидаю, что то же самое будет работать для запросов PUT и POST.

    this.httpClient.put('dummyUrl', this.payload, { withCredentials: true });

Я получаю 401 Несанкционированный от этого.


Мое расследование

Метод запроса, который я вижу, это OPTIONS, который говорит мне, что это не удалось на предполетном этапе, и что эта проблема относится к CORS, а не к Angular. Я не смог понять, что мне не хватает.

Буду благодарен за любое руководство.

1 Ответ

0 голосов
/ 02 мая 2018

Попробуйте следующий код.

import { RequestOptions, Headers } from '@angular/http';

let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers, withCredentials: true });

this.httpClient.put('dummyUrl', this.payload, options);
...