[英]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。
我没有弄清楚为什么没有收到POST数据,但是作为一种临时的解决方法,我不需要从JS发送数据,因此我同时将数据移到了控制器上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.