首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角11捕获对后端API的直接请求

角11捕获对后端API的直接请求
EN

Stack Overflow用户
提问于 2022-01-11 12:37:43
回答 1查看 144关注 0票数 0

我创建了一个基于角度11的.net核心网站。

在我的解决方案中,我创建了一些控制器,并希望不是从角度组件或服务调用它,而是直接从浏览器或不同的服务调用它。在这种情况下,角捕获请求在其路由上查找相关组件,并显示“页面未找到”错误。

如何配置角、.net核心或IIS以允许对控制器的直接请求?谢谢。

我的财务主任:

代码语言:javascript
复制
    [ApiController]
    [Route("api/[controller]")]
    public class PubSubController : ControllerBase
    {
        [HttpGet("Notify")]
        public IActionResult Notify()
        {
            return Ok("OK");
        }
    }

我调用的Url:http://angularApp/api/PubSub/Notify

EN

回答 1

Stack Overflow用户

发布于 2022-01-11 13:01:58

它们显示URL (http://angularApp/api/PubSub/Notify)的方式,并假设您想绕过角路由,从API中命中“控制器”是不可能的。基于您的URL,您使用的是PathLocationStrategy,它利用了一个相对新的名为HTML5的HTML5 API (来自HTML5历史API)。所以所有的URL都会被棱角路由器服务解释。为了获得这个功能,我将角度转换为HashLocationStrategy,这样整个SPA站点将相对于一个基本URL,并且您可以使用其他URL从API中命中“控制器”。在Startup.cs In 配置方法中,您可以执行如下操作:

代码语言:javascript
复制
  app.Use(async (context, next) =>
        {
            var url = context.Request.Path.Value;
            
            if (url.Contains("/api/PubSub/Notify"))
            {
                // ...do your things
                //....context.Response.Redirect(urlRedirect, permanent: false);
                return;   // short circuit
            }

            await next();
        });

若要避免将响应返回SPA默认URL,请执行以下操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70666918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档