小编Wr4*_*i7h的帖子

ASP.NET 将 CORS 标头添加到 ashx 文件处理程序

我有一个带有 WebApi 的 C# .NET MVC 解决方案。现在我已经设置了 Owin 和 CORS(用于基于令牌的身份验证)并且一切都按预期工作。

我还有一个文件处理程序:配置了 File.ashx 并且处理程序在本地完美运行。问题是,当我从另一个 Origin(通过 AJAX 客户端调用)向处理程序发送请求时,我收到以下错误:

XMLHttpRequest 无法加载http://localhost:1234/Handlers/File.ashx。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin ' http://localhost:1234 '。响应具有 HTTP 状态代码 405。

现在,当浏览器发送 OPTIONS 请求时,很明显访问控制标头不会返回给客户端。

我查看了以下链接: 未为 OPTIONS Ajax 请求设置标头,这表明我通过处理程序本身返回适当的标头。

但是在调试时,我注意到该ProcessRequest方法甚至没有被击中。

if (context.Request.HttpMethod == "OPTIONS")
    {
        context.Response.AddHeader("Access-Control-Allow-Origin", "*");
        context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
        context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是在哪里控制/拦截 OPTIONS 请求并返回适当的标头?

请注意,我只想在 WebApi(已经在工作)和我的文件处理程序上启用 CORS。

.net asp.net-mvc cors c#-4.0 asp.net-web-api2

6
推荐指数
2
解决办法
4387
查看次数

Angular 如何仅在开发模式下创建特定路线

如何仅在开发模式下加载某些路由。当我在启用生产模式的情况下构建时,我希望禁用这些路由。

有人对如何实现此功能有什么好的建议吗?例如,如果处于开发模式,则隐藏下面的route2组件。

    const routes: Routes = [
  {
    path: '',
    component: AdminComponent,
    canActivate: [AuthGuard],
    runGuardsAndResolvers: 'always',
    data: { allowedRoles: ['Role1','Role2'] },
    children: [
      {
        path: '',
        redirectTo: 'dashboard/main',
        pathMatch: 'full'
      },
      {
        path: 'route2',
        loadChildren: './theme/route2/route2.module#route2Module'
      }
    ]
   }
Run Code Online (Sandbox Code Playgroud)

typescript angular angular6

3
推荐指数
1
解决办法
4307
查看次数