【发布时间】:2025-11-26 13:15:02
【问题描述】:
我有一个 Angular 应用程序在我的开发机器上本地运行,它试图向另一台机器上的 IIS 上运行的 WCF Web 服务发出请求。
使用 Postman,我可以使用 POST 和 OPTIONS 动词向服务发出请求。
但是,当我的 Angular 应用发出请求时,我在发出的 CORS 预检 OPTIONS 请求中出现 400 错误。
请求是这样发出的:
// passed-in url is https://myserver/myservice/Hello
public hello( url: string, name: string )
{
const headers = new HttpHeaders()
headers.append('Content-Type', 'application/json');
headers.append('Test', 'TestyTest');
return this.httpClient.post<string>( url,
{ name: name },
{ headers: headers }
);
}
在 Chrome 的网络面板上的调试工具中,我看到这个请求的两个条目:
Hello (failed) xhr zone.js:2935 0 B 188 ms
Hello 400 text/html Other 0 B 176 ms
如果我检查这两个条目的请求标头,我也看不到我的代码尝试添加的 Test 标头。这不是问题(我不需要那个标题),但它可能是一个线索。
请注意,第二个标题中的Content-Type 是text/html。
我没有在我的 Web 服务日志中看到任何条目,也没有在 IIS 日志或服务器上的事件查看器中看到任何错误。
什么可能导致此问题,我该如何解决它或获取更多信息?
【问题讨论】:
-
您的后端似乎没有正确响应 OPTION 请求(400 错误请求)。它需要以 200 和正确的 CORS 标头进行响应..
-
我可以使用 Postman 的 OPTIONS 请求并获得 200 响应,那么为什么 Angular 应用程序不同?
标签: angular wcf cors http-status-code-400