Я создаю приложение, используя asp .net core 3.1 с Единый вход Azure .
Моя проблема заключается в том, когда я развертываю приложение наAzure, я могу не беспокоиться, однако, когда я использую Ajax для связи с серверной частью (контроллером) для извлечения данных в популярные поля, которые требуются, я получаю эту ошибку Cross-Origin Read Blocking (CORB) blocked cross-origin response https://login.microsoftonline.com/common/oauth2/authorize?cl
Из того, что я могу понять из проведенного мною исследования, эта функция была создана для предотвращения злонамеренного захвата и была представлена Консорциумом World Wide Web.
Похоже, она пытаетсяполучить повторную авторизацию от Azure, когда я уже выполнил вход, что заставляет меня поверить, что Ajax не передает куки или токен из браузера.
Вот функция из файла .cshtml
function GetPageSize() {
$.ajax({
type: 'POST',
url: 'path=' + $('#jobTypeId').val(),
data: $('#myform').serialize(),
success: function (data) {
// Does Stuff
},
error: function (data) {
// Does Other Stuff
},
});
}
И вот часть контроллера.
[Authorize]
public class HomeController : Controller
{
private readonly ILogger<HomeController> _logger;
private readonly IWebHostEnvironment _env;
/// <summary>
///
/// </summary>
/// <param name="logger"></param>
public HomeController(ILogger<HomeController> logger, IWebHostEnvironment env)
{
_logger = logger;
_env = env;
}
public IActionResult Index() => View();
/// <summary>
///
/// </summary>
/// <returns></returns>
[Route("Home/Path/{str?}")]
[HttpPost]
public IActionResult GetFunc()([FromQuery] string str)
{
using (ApiHelper apiHelper= new ApiHelper (Startup.Configuration.GetSection("ConnectionString")["connectionString"]))
{
// Do Some Stuff And Return Json
}
}
}
А вот и ApiHelper (я не думаю, что это не имеет значения, однако вот он)
/// <summary>
///
/// </summary>
public class ApiHelper : IDisposable
{
/// <summary>
///
/// </summary>
public LockString ConnectionString { get; set; }
/// <summary>
///
/// </summary>
/// <param name="connectionString"></param>
public ApiHelper(string connectionString) => ConnectionString = new LockString(connectionString);
/// <summary>
///
/// </summary>
/// <returns></returns>
public IEnumerable<MyType> Func()
{
// Connect to sql
// Return results.
}
Я попытался добавить
services.AddCors(options =>
{
options.AddDefaultPolicy(
builder =>
{
builder.AllowAnyOrigin();
builder.AllowAnyMethod();
builder.AllowAnyOrigin();
builder.AllowAnyHeader();
});
});
в ConfigureServices
и app.UseCors();
в конфигурации (у меня не было UseMVC, поэтому я добавил его выше app.UseHttpsRefirection()
, но я все еще получаю ту же ошибку, упомянутую выше.