【问题标题】:ASP.NET Core 2.2 All AJAX POST Calls Returns 404 When Page is in iFrame当页面在 iFrame 中时,ASP.NET Core 2.2 所有 AJAX POST 调用返回 404
【发布时间】: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


    【解决方案1】:

    我后来发现了发生这种情况的原因。

    这与 ASP.NET Core 的任何细节无关。这是由我正在使用的第三方 Atlassian 库引起的,该库控制 AJAX 调用并使它们与 Atlassian 域相关:

    【讨论】:

      猜你喜欢
      • 2020-02-09
      • 1970-01-01
      • 2017-12-10
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多