asp.net - React Native:为什么将查询参数附加到我的 .Net API 调用会自动返回 404 错误?
问题描述
在我的 React Native 应用程序中,我试图在用 .Net 编写的 API 中访问端点。我的本地机器上有 API 代码,所以我试图通过调用fetch(127.0.0.1:5000/api/token)
. 这将返回 404 错误。如果我改为点击fetch(127.0.0.1:5000/)
,它会成功返回。在这种情况下命中的 API 代码是HomeController.cs
,其中包含:
namespace InTowAPI2.Controllers
{
[AllowAnonymous]
[Route("/a")]
public class HomeController : Controller
{
// GET api/values
[HttpGet]
public string Get()
{
return "Ok";
}
}
}
当我调用 时fetch(127.0.0.1:5000/)
,它返回“Ok”并命中我在 中设置的断点HomeController.cs
。ValuesController.cs
我打电话时应该点击的另一个文件fetch(127.0.0.1:5000/api/token)
包含此代码(加上它之后的更多):
namespace InTowAPI2.Controllers
{
[AllowAnonymous]
[Route("/api/[controller]")]
...
...
当我调用fetch(127.0.0.1:5000/api/token)
时,没有命中断点ValuesController.cs
,它返回 404 错误。
为了解决这个问题,我尝试做的是,因为HomeController.cs
工作正常,我替换[Route("/")]
为[Route("/api")]
,并拨打了fetch(127.0.0.1:5000/api)
. 这也返回了 404 错误。
我想知道的:
为什么点击包含[Route("/")]
with的 API 代码可以fetch(127.0.0.1:5000/)
工作,但修改为 hit [Route("/api")]
withfetch(127.0.0.1:5000/api)
会抛出 404 错误?
解决方案
问题是路由。
[Route("/api/[controller]")]
此 RouteAttribute 定义将端点路由到控制器的名称。
应该命中的另一个文件 ValuesController.cs...
好像您的控制器名称是ValuesController,它将在/api/values上创建一个端点,而不是/api/token。
要解决此问题,请执行以下操作之一:
- 将控制器的名称从 ValuesController 更改为 TokenController。
- 将 RouteAttribute 从 [Route("/api/[controller]")] 更改为 [Route("/api/token")]。
推荐阅读
- office-js - 如何在过滤后的 office-js Excel 表的开头添加新行?
- java - 如何在 Java 9 中更改包装类初始化?
- wpf - WPF Window Left 属性在与左屏幕边框对齐后具有负值
- mysql - 我想提高我的搜索性能 mysql
- vuejs2 - 如何使用最初加载的 Vue js 组件的内容,然后将它们绑定到变量
- javascript - 对象的反向数组给出相同的输出 2
- haskell - Haskell 过滤数据
- ios - 带有和不带有类继承的swift协议有什么区别?以及何时使用继承的类而不是继承的协议?
- git - 更改 Git 中的旧提交
- android - 回收站视图检测上下滑动