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

时间:2018-10-13 20:08:21

标签: javascript c# azure cors cross-domain

我有一个.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提要?

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);
}

1 个答案:

答案 0 :(得分:0)

结果表明,将代码部署到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。

  

计算机\ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ App   路径\ IEXPLORE.EXE

要解决此问题,我安装了Internet Explorer 11。

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

我没有弄清楚为什么没有收到POST数据,但是作为一种临时解决方法,我不需要从JS发送数据,因此我同时将数据移到了控制器上。