【发布时间】:2019-06-02 19:05:19
【问题描述】:
我已经搜索了高和低的良好响应。我要解决的问题是……我有一个 VS 2017(社区)项目,该项目有一个 Angular 7 应用程序和一个网络核心 web api 后端都在同一个项目中。我可以使用 Postman 成功地测试 API,以便在数据库中发布和获取一些简单的数据。但是,当我尝试使用 Angular 前端来做同样的事情时,我得到一个 ERRCONNREFUSED 错误。
经过多次相互冲突/令人沮丧的网络搜索以找到一个简单的答案后,我开始尝试使用 proxy.config.json 文件。
proxy.config.json
{
"/api": {
"target": "http://localhost:8888",
"secure": false
}
}
我通过 npm start 启动 Angular 应用程序,它按预期在 4200 端口启动。
我启动了 dotnet run,它也运行成功了。
Startup.cs
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action=Index}/{id?}");
});
app.UseSpa(spa =>
{
spa.Options.SourcePath = "ClientApp";
if (env.IsDevelopment())
{
spa.UseAngularCliServer(npmScript: "start");
}
});
package.json
{
"name": "client-app",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.config.json",
...}
我得到的错误如下:
尝试将请求 /api/clients 从 localhost:4200 代理到 localhost:8888 时出错(ERRCONNREFUSED)。
我觉得我只是忽略了一些简单的事情。
【问题讨论】:
-
您是否在端口 8888 上运行 http 代理?该错误暗示不
-
我也有点困惑你的 Angular 应用程序启动“在端口 4200”是什么意思 - Angular 是一种前端技术,不会打开监听端口,它是后端服务器(nodejs ?) 打开监听器..当前端需要数据时,它会连接到服务器并请求它。发布作为您的 Angular JavaScript 前端位的代码,询问数据?还可以从邮递员那里发布您的工作请求,甚至可以考虑让邮递员为您生成 JS - learning.getpostman.com/docs/postman/sending_api_requests/…
-
您能否显示您的服务器端 settings.json 文件和/或 startup.cs 设置 CORS 的位置,即客户端侦听域或 IP?
-
尽量把
app.UseMvc()放在Startup.cs\Configure()的最后,但在app.Run()之前,以便在使用mvc之前设置所有配置。
标签: c# node.js angular asp.net-core-webapi angular7