如何使用react应用程序将一个 asp.net 核心控制器动作视图访问到 iframe 中?

IT技术 javascript c# reactjs asp.net-core
2021-05-04 16:32:06

当我尝试从 React 应用程序访问 asp.net 核心应用程序控制器视图之一时,在浏览器控制台中,我收到了错误

'Refused to display 'http://localhost:1212/Account/Login/?ReturnUrl=%Home%MyIFrame%3url%TestData' in a frame because it set 'X-Frame-Options' to 'sameorigin'.'

因为我装饰了动作方法 [Authorize] attribute

startup.cs包含文件中

Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){
app.UseCors(
                options => options
                   .WithOrigins(
                     "http://localhost:3000",
                 )
                   .AllowAnyMethod()
                   .AllowAnyHeader()
                );
} 
1个回答

X-FRAME-OPTIONS是一个 Web 标头,可用于允许或拒绝对页面进行 iframe。这在防止点击劫持企图时非常重要

认为不推荐,但是如果您想更改使您的应用程序成为 iframe ,您可以尝试在Configureasp.net core 应用程序的功能中添加以下配置以设置X-Frame-Options响应头,例如:

app.Use(async (context, next) =>
{
    context.Response.Headers.Add("X-Frame-Options", "AllowAll");
    await next();
});
app.UseMvc();