Когда я выполняю простой вызов AJAX Submit из формы на веб-сайте ASP.NET 2.2, который размещается как iFrame на другом веб-сайте, он всегда возвращает 404.
Когда я делаю тот же звонок, но веб-сайт не находится внутри iFrame, все работает нормально.
Это вызов AJAX, который я использую. PS: я жестко закодировал URL, чтобы избежать проблем с маршрутизацией.
$(document).ready(function () {
$('#saveConfiguration').on('click', function (e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this).closest('form');
var url = "https://server/api/external/helloworld";
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function (data) {
alert("success");
},
error: function (xhr, textStatus, error) {
alert(xhr.statusText);
}
});
});
});
Это метод API, который я вызываю:
[HttpPost("HelloWorld")]
public IEnumerable<string> HelloWorld()
{
return new string[] { "value1", "value2" };
}
Я также внес в белый список главный домен из CORS в файле Startup.cs. Это не помогает.
Плюс добавлено Подавить X Параметры кадра:
services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true);
Кто-нибудь сталкивался с этим сценарием? Опять же, это происходит только тогда, когда веб-сайт размещается как iFrame. Когда веб-сайт размещается как главный, у него нет проблем.