Разместить запрос в опциях запроса - PullRequest
0 голосов
/ 07 июня 2018

Моя проблема в моем API Angular 6. После создания перехватчиков при отправке запроса POST они становятся в запросе OPTIONS.

В чем проблема?

Это код одной службы

import { Injectable } from '@angular/core';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { AppConfig } from '../app.config';
import { Perfil } from '../Entities/Perfil';
// import { Http } from '@angular/http';

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

  constructor(private http: HttpClient, private config: AppConfig) { }

  private per = new Perfil(1);

  getPerfiles() {
    return this.http.post(this.config.apiUrl + 'perfiles/Buscar/', this.per);
  }


}

, это изображение поможет нам в этой проблеме:

enter image description here

С уважением!

Ответы [ 3 ]

0 голосов
/ 07 июня 2018
//**need to pass header in your post api**


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

 getPerfiles() {
    return this.http.post(this.config.apiUrl + 'perfiles/Buscar/', this.per,httpOptions).subscribe(result => {
        console.log(result);
      }, error => console.log('There was an error: '));


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

Yeahhh!,Я знал, что это были cors, и реализовал сзади, но плохо.Решения, которые я реализую, таковы: (с использованием .Net Framework 4)

Внутри WebApiConfig.cs

public static void Register(HttpConfiguration config)
        {

            var cors = new EnableCorsAttribute("*", "*", "*");
            config.EnableCors(cors);
         }

спасибо lomboboo и Майк , это была очень помощь!

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

Это проблема CORS, и, как сказал lomboboo, OPTIONS - это специальный запрос к серверу, чтобы спросить, что я могу сделать, и разрешен ли мне доступ к контенту?

Чтобы предоставить исправление, вваш сервер (бэкэнд) вам нужен для реализации заголовков CORS и допускает POST и любые другие необходимые вам операции.

...