[英]React setupProxy not proxying request
我正在尝试使用 asp.net 核心 web ZDB974238714CA8DE6FZ34A 在两个单独的项目中设置 React web 应用程序。 我按照 Microsoft 的指南使用两个单独的 Visual Studio 项目设置模板 - 使用 React 创建 ASP.NET 核心应用程序 - https://learn.microsoft.com/en-us/visualstudio/javascript/tutorial-asp-net-core- with-react?view=vs-2022
开箱即用,一切正常,我可以将我的 api 请求代理到示例 /weatherforecast 控制器的 get 方法。 接下来,我创建了自己的 controller,现在我似乎无法将我的请求代理到这个 controller。
向 https://localhost:3000/api/employee 发出请求只会返回 404。我还在控制台中看到一条关于没有匹配路由的消息。
我已经为上下文尝试了各种模式,但都没有运气。 我认为'/ api'就是我所需要的。
我的 setupProxy.js 文件看起来像这样。
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function (app) {
app.use(
['/api/weatherforecast', '/api/employee'],
createProxyMiddleware({
target: 'https://localhost:7157',
secure: false,
})
); };
我的启动设置。json 在我的 web api 项目中
{
"profiles": {
"WebApi": {
"commandName": "Project",
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
"dotnetRunMessages": true,
"applicationUrl": "https://localhost:7157;http://localhost:5157"
},
"IIS Express": {
"commandName": "IISExpress",
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
},
"$schema": "https://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:34955",
"sslPort": 44352
}
}
}
我的部分员工 Controller
namespace WebApi.Controllers {
[ApiController]
[Route("api/[controller]")]
public class EmployeeController : Controller
{
private readonly ILogger<EmployeeController> logger;
private readonly Context context;
public EmployeeController(ILogger<EmployeeController> logger, TenthContext context)
{
this.logger = logger;
this.context = context;
}
// GET: EmployeeController
[HttpGet(Name="GetEmployee")]
public IEnumerable<Employee> Get()
{
var employees = context.Employees.ToList();
return employees;
}
不知道这笔交易是什么,但在我重新启动后一切都按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.