Поставить метод возврата неавторизованным - PullRequest
0 голосов
/ 07 июня 2018

Я новичок в Angular, и у меня есть сервис, подобный этому:

readonly rootUrl = "http://myapi.net/";

  private serviceUrl = "http://myapi.net/api/usuarios/listar";
  headers = new Headers({
    Authorization:
      "Bearer " + JSON.parse(localStorage.getItem("currentUser")).token,
    "Content-Type": "application/json"
  });
  options = new RequestOptions({ headers: this.headers });

, поэтому я получаю уведомление пользователя, затем я создаю метод, подобный:

constructor(private http: Http) {}
postSwitch() {
    var cambioEstatus = this.http
      .put(this.rootUrl + "api/usuarios/activar", this.options)
      .map((data: any) => data.json());
    return cambioEstatus;
  }

И, наконец,использовать в таком компоненте, как:

onFlagChange(event) {
    this.UsuariosService.postSwitch().subscribe(
      () => {
        //React to your HTTP request success
        this.toastr.success("Success");
      },
      err => {
        this.toastr.error("Fail");
        //React to your HTTP request error
      }
    );
  }

Но это всегда возвращает ошибку 401 неавторизованным, странная вещь: если я выполню ее с почтальоном, она не вернет эту ошибку.И другие методы (get), такие как:

listarEmpresas() {
    var empresas = this.http
      .get(this.rootUrl + "api/empresas/listar", this.options)
      .map((data: any) => data.json());
    console.log(empresas);
    return empresas;
  }

Не выдавайте эту ошибку, есть еще одна вещь, которую мне нужно сделать для действий put?С уважением

Изображение

1 Ответ

0 голосов
/ 07 июня 2018

Похоже на проблему с CORS, и вам нужно включить CORS на вашем сервере или попробовать добавить в заголовок add.

Access-Control-Allow-Origin: * 

Также попробуйте передать body с вашим запросом.

postSwitch() {
var cambioEstatus = this.http
  .put(this.rootUrl + "api/usuarios/activar", body, this.options)
  .map((data: any) => data.json());
return cambioEstatus;

}

Для включения CORS для тестирования используйте приведенный ниже флаг хрома

chrome.exe --user-data-dir="C:/Chrome dev session" --disable-web-security
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...