繁体   English   中英

Azure否'Access-Control-Allow-Origin'标头

[英]Azure No 'Access-Control-Allow-Origin' header

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

直到最近,RSS提要停止通过C#调用时返回数据的逻辑。 通过浏览器访问时,您可以看到RSS feed。

问题

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

对预检请求的响应未通过访问控制检查:请求的资源上不存在“ Access-Control-Allow-Origin”标头。 因此,不允许访问来源“ http://blah.azurewebsites.net ”。

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

但是,这个网站https://codebeautify.org/rssviewer如何管理返回RSS feed?

使用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/zh-CN/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。

计算机\\ 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发送数据,因此我同时将数据移到了控制器上。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM