如何为代理网站正确配置 CORS 设置
Posted
技术标签:
【中文标题】如何为代理网站正确配置 CORS 设置【英文标题】:How to configure CORS settings properly for proxying website 【发布时间】:2021-10-31 05:16:21 【问题描述】:我的应用程序GET
s 来自网站的页面并将它们显示在本地主机域中。但在特定网站(如 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 设置的主要内容,如果未能解决你的问题,请参考以下文章