angular - 部署在 Intranet IIS 10 上的 Angular 6 客户端应用程序始终返回错误 0
问题描述
我在这个论坛上搜索了几天,我无法解决这个问题。
只是为了描述环境,我有一个运行 IIS 10 的 Windows 10 机器,客户端应用程序在端口 80 上运行,WebService (.NET core 2.0) 在端口 123 上运行。
客户端应用程序一直出现错误 0 : Unknown Error,据我了解是 CORS 问题。
我使用以下内容配置了我的 Web 服务(服务器端):
services.AddCors(options => options.AddPolicy("CorsPolicy",
builder => {
builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials();
}));
后来,我用
app.UseCors("CorsPolicy");
我的 Angular 6 应用程序定义了如下服务:
export class SearchService {
const baseUrl = 'http://drague.karaoke:123/api';
const searchUrl = this.baseUrl + '/KaraokeSongs/search';
constructor(private http: HttpClient) { }
search(term) {
if (!term) {
term = ""
}
var restResponse:SearchSong[];
const parameters = new HttpParams().set('filter', term);
const headerDict = new HttpHeaders({
'Content-Type': 'application/json',
'Accept': 'application/json',
'Access-Control-Allow-Methods': 'GET,PUT,OPTIONS',
'Access-Control-Allow-Headers': 'Access-Control-Allow-Origin, Content-Type, Accept, Accept-Language, Origin, User-Agent',
'Access-Control-Allow-Origin': '*',
});
console.log(headerDict);
return this.http.get<SearchSong[]>(this.searchUrl, { headers: headerDict, params: parameters });
}
当我尝试使用 Postman 时,一切都很好,服务按预期响应。当我使用以下配置运行 ng-serve --proxy-config 时也是如此:
{
"/api" : {
"target": "http://drague.karaoke:123",
"secure": false,
"changeOrigin": true,
"logLevel": "debug"
}
}
当我在 IIS 上部署客户端时,我无法让它工作。欢迎任何想法,我真的很绝望......
关于环境的有用信息:
它是严格的 http 调用(没有 Https)
它是一个内联网。到服务器的路由是由 WIFI 路由器完成的,它公开了域“drague.karaoke”。
客户端部署在http://drague.karaoke:80
谢谢你的帮助...
雷让
解决方案
我做了很多测试和试验。最后,端口 123 似乎是保留端口(用于 NTP)。我将端口更改为81,一切正常...
奇怪的是,Firefox 没有给出任何暗示,Fiddler 和 Charles 也没有……
感谢 Chrome(和 Stack Overflow)帮助我解决了这个问题......
推荐阅读
- python-3.x - 模式包安装失败
- mysql - MySQL:可能的变量生命周期问题,可能的范围问题,老实说不确定
- pandas - 如何创建自己的自定义转换器并在 scikit-learn 的管道中使用它们?
- spring-kafka - Kafka 事务的 Spring Kafka Consumer ACKMODE 和 Producer 缓冲
- security - 估计密码破解时间
- python - 由于数据类型不匹配 PySpark 无法解析列
- java - 用java制作一个基本的游戏,jFrame形式vs jframe
- css - 当我尝试通过样式更改图标颜色时,它保持黑色
- ios - 如何解决 React Native 中 Firebase 的 invalidRegistration 错误
- node.js - 构建了带有反应前端和快递代理后端的电子应用程序,而不是引导 api 请求来表达