蔚蓝否 '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。
- 按Windows键
- 搜索管理可选功能
- 点击添加功能
- 查找 Internet Explorer
- 安装,重启完成安装
我没弄清楚为什么没有收到POST数据,但作为临时解决方法,我不需要从JS发送数据,所以我将数据移动到控制器中与此同时。
我有一个在 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。
- 按Windows键
- 搜索管理可选功能
- 点击添加功能
- 查找 Internet Explorer
- 安装,重启完成安装
我没弄清楚为什么没有收到POST数据,但作为临时解决方法,我不需要从JS发送数据,所以我将数据移动到控制器中与此同时。