Я попытался установить соединение со своего стороннего клиента с сервером API с помощью ajax, но в ответе появляется сообщение об ошибке: Доступ к XMLHttpRequest в 'https://localhost:44381/api/webinars 'из источника' http://localhost:5003 'заблокирован политикой CORS: ответ на предварительный запрос не проходит проверку контроля доступа: для запрошенного ресурса нет заголовка' Access-Control-Allow-Origin '. em> Я попытался изменить политику CROS в API, но у меня все еще возникает та же ошибка. Это мой код ajax из MVC:
$.ajax({
url: "https://localhost:44381/api/webinars",
type: 'POST',
headers: {
contentType: "application/json",
},
body: JSON.stringify(body),
success: function (data) {
console.log(data);
},
failure: function (err) {
console.log(err);
}
});
Запуск из API:
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddCors(options =>
{
options.AddPolicy("AllowMyOrigin",
builder => builder.WithOrigins(
"http://localhost:5003/",
"http://apirequest.io")
.WithMethods("POST","GET","PUT")
.WithHeaders("*")
);
});
//code
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//code
app.UseCors("AllowMyOrigin");
app.UseHttpsRedirection();
app.UseMvc();
}
}
Контроллер в API:
[EnableCors("AllowMyOrigin")]
[Route("api/[controller]")]
[ApiController]
public class WebinarsController : ControllerBase
{
// POST: api/Webinars
[HttpPost]
public async Task <ActionResult> PostAsync([FromBody] Item newItem)
{
//code
}
}
Спасибо за ответ.