【发布时间】:2019-09-11 22:11:39
【问题描述】:
当我从 ASP.NET 2.2 网站上的表单进行简单的 AJAX 提交调用时,该网站作为 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" };
}
我还在 Startup.cs 文件中将 CORS 的主域列入白名单。没用。
另外添加了 Suppress X Frame 选项:
services.AddAntiforgery(o => o.SuppressXFrameOptionsHeader = true);
有人遇到过这种情况吗?同样,仅当网站作为 iFrame 托管时才会发生这种情况。当网站作为主服务器托管时,它没有任何问题。
【问题讨论】:
标签: asp.net iframe http-status-code-404