蔚蓝否 'Access-Control-Allow-Origin' header

Azure No 'Access-Control-Allow-Origin' header

我有一个在 Azure Web 应用程序中托管的 .NET Core Web 应用程序。它的功能之一是解析 XML 提要服务器端。

直到最近,当通过 C# 调用时,RSS 提要停止 returning 数据。通过浏览器访问时,您可以看到 RSS 提要。

问题

该解决方案现在仅适用于本地主机。如果我直接使用 AJAX 调用 RSS 提要,我会收到此错误:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://blah.azurewebsites.net' is therefore not allowed access.

据我了解,服务器没有在响应中包含 header?

但是这个网站 https://codebeautify.org/rssviewer 如何管理 return RSS 提要?

Javascript

var data = [
    { title: "UK", Url: "http://feeds.bbci.co.uk/news/uk/rss.xml" },
    { title: "World", Url: "http://feeds.bbci.co.uk/news/world/rss.xml" }
];

$.ajax({
    method: "POST",
    contentType: "application/json",
    data: JSON.stringify(data),
    url: "api/xml",
    success: (data) => {
        // do stuff
    }
});

C#

public MyResponse Get(List<MyRequest> requests)
{
    foreach(var request in requests)
    {
        request.XDocument = XDocument.Load(request.Url);
    }

    return new MyResponse(requests);
}

事实证明,当代码部署到 Azure 时,我的控制器没有收到 POST 数据。不知道为什么,但我能够按照本指南设置远程调试来看到这一点 https://docs.microsoft.com/en-us/azure/app-service/web-sites-dotnet-troubleshoot-visual-studio

按照本指南操作时,我确实遇到了 Visual Studio 2017 Community Edition 无法找到 Internet Explorer 的问题。

基本上,Visual Studio 正在寻找 iexplore.exe,出于某种原因,我没有(可能是因为 Edge 存在?)。我是 运行 Windows 10 Home,版本 10.0.17134.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE

为了解决这个问题,我安装了 Internet Explorer 11。

  1. 按Windows键
  2. 搜索管理可选功能
  3. 点击添加功能
  4. 查找 Internet Explorer
  5. 安装,重启完成安装

我没弄清楚为什么没有收到POST数据,但作为临时解决方法,我不需要从JS发送数据,所以我将数据移动到控制器中与此同时。