Запрос перекрестного источника заблокирован по запросу HTTP POST - PullRequest
0 голосов
/ 25 мая 2019

Я отправляю HTTP-запросы из моего углового клиентского приложения в .NET core web API. Я получаю ошибку CORS, хотя я включил CORS. Когда я посылаю запрос GET на мой SearchController, он проходит нормально, но когда я отправляю запрос POST на мой FormController, я получаю ошибку CORS.

Я пытался запустить его в Chrome, тот же результат.

 public void Configure(IApplicationBuilder app, IHostingEnvironment env)
 {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }


            app.UseCors(builder =>
                builder.AllowAnyOrigin()
                );

            app.UseHttpsRedirection();
            app.UseMvc();
 }

Как вы видите, я настроил его на любое происхождение

const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type':  'application/json',
      'Authorization': 'my-auth-token',

    })
};



@Injectable()

export class SendFormService
{
    submitUrl : string = "https://localhost:5001/api/submitForm";

    constructor(private http : HttpClient){ }

    public SendFormData(formData : RoadmapForm) : Observable<RoadmapForm>
    {
        //remember to error handle
        return this.http.post<RoadmapForm>(this.submitUrl, formData, httpOptions);

    }
}

POST-запрос, который не работает

    public class Form
    {
        string title;
        string summary;
        string body;
        string[] tags;

    }

    [Route("api/submitForm")]
    [ApiController]

    public class FormController : ControllerBase
    {
        [HttpPost]
        public void Post([FromBody] Form formData)
        {
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine(formData);
        }
    }

Класс FormController

Как я уже говорил ранее, это работает для запросов GET к моему SearchController. Но по какой-то причине я получаю ошибку CORS при запросе POST к моему FormController.

1 Ответ

1 голос
/ 26 мая 2019

Включение CORS

public void ConfigureServices(IServiceCollection services)
{
      services.AddCors();
      services.AddMvc();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseCors(
        options => options.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()
    );

    app.UseMvc();
}
...