如何为代理网站正确配置 CORS 设置

Posted

技术标签:

【中文标题】如何为代理网站正确配置 CORS 设置【英文标题】:How to configure CORS settings properly for proxying website 【发布时间】: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,但没有用。尝试代理 ***,效果很好。

【问题讨论】:

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

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

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

【讨论】:

我是这么认为的,但不确定。谢谢你的回答

以上是关于如何为代理网站正确配置 CORS 设置的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Symfony2 站点正确设置 Varnish?

如何为 Git 设置代理

如何为每个配置文件配置 PIP 以使用代理(带身份验证)?

如何为 svn 配置 HTTP 代理

如何为 Pandas pd.read_csv 设置代理

本地计算机如何使用代理服务器,自动设置代理ip