【问题标题】:How to configure CORS settings properly for proxying website如何为代理网站正确配置 CORS 设置
【发布时间】:2021-10-31 05:16:21
【问题描述】:

我的应用程序GETs 来自网站的页面并将它们显示在本地主机域中。但在特定网站(如 habr)上,我收到如下消息:

完成所有工作的代码:

app.Run(async (context) =>
{
    var url = context.Request.GetDisplayUrl()
        .Replace(@"https://localhost:5001", "");
    var request = (HttpWebRequest) WebRequest.Create(@"https://habr.com" + url);
    var responce = (HttpWebResponse) request.GetResponse();
    var resStream = responce.GetResponseStream();
    var reader = new StreamReader(resStream);
    await context.Response.WriteAsync(await reader.ReadToEndAsync());
});

和 CORS:

app.UseCors(builder =>
{
    builder.DisallowCredentials();
    builder.AllowAnyHeader();
    builder.AllowAnyMethod();
    builder.AllowAnyOrigin();
});

我试过不使用DisallowCredentials,但没有用。尝试代理 StackOverflow,效果很好。

【问题讨论】:

  • this 回答你的问题了吗?
  • 不,它没有。如您所见,我尝试将 CORS 设置为允许所有内容。
  • 你是在app.UseMvc之前还是之后打电话给app.UseCors
  • 我没有使用 MVC。我只需要通过我的 localhost 域代理一个网站。还是这里需要MVC?

标签: c# asp.net-core cors


【解决方案1】:

该错误告诉您,您的应用程序https://localhost:5001 无法访问代理的目标目的地...marketing/?page。这不是可以通过设置您自己的 CORS 政策来解决的问题:限制访问的是目标的 CORS 政策。

换句话说,您的localhost 应用正在向一个目的地发送XMLHttpRequest,该目的地因违反他们的 CORS 政策而撤销连接。

【讨论】:

  • 我是这么认为的,但不确定。谢谢你的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多