我有一个.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);
}
答案 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。
我没有弄清楚为什么没有收到POST数据,但是作为一种临时解决方法,我不需要从JS发送数据,因此我同时将数据移到了控制器上。