我使用标准的Angular http模块向本地虚拟机发送post请求。它不能工作,因为Angular一直发送HTTPS请求而不是HTTP请求。
我用于POST的代码示例:myFunction(request: MyType): any {
const uri = "http://myVirtualMachine/myApi/myService";
const headers = { 'content-type': 'application/json'};
return this.http.post<any>(uri, request, {headers});
}
如果POST被发送到本地主机,则此操作有效。对于任何其他URI, HTTP总是被替换为HTTPS。
任何线索为什么和如何解决这个问题?
一些注意事项:
- 角12。
- 没有拦截器,但是如果我添加了一个拦截器,它接收的请求包含HTTP,而不是HTTPS。
- 在Edge和Chrome中同样的问题,在私人模式下与否,甚至在清除了我能想到的所有缓存之后。
- 域安全策略似乎不是这里的问题(chrome://net-internals/#hsts)。
罪魁祸首是这条线在index . html:
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
我不确定它是如何到达那里的,也许当我安装了msal.js进行测试。