带有 .Get() 对 Azure 搜索 API 的请求的 Angular HttpClient“未知错误”
Posted
技术标签:
【中文标题】带有 .Get() 对 Azure 搜索 API 的请求的 Angular HttpClient“未知错误”【英文标题】:Angular HttpClient "Unknown Error" with .Get() Request to Azure Search API 【发布时间】:2018-05-30 14:45:48 【问题描述】:目前面临的问题是对 Azure 搜索 API 的请求返回“未知错误”。
我在邮递员中收到了.Get()
请求,并认为它在理论上与使用 Http 客户端在 Angular 中的设置相同。
export class AzureSearchConfigComponent implements OnInit
synonyms: any[];
private synonymUrl = 'https://name.search.windows.net/synonymmaps?api-version=2017-11-11'
constructor(private http: HttpClient)
ngOnInit()
let headers = new HttpHeaders();
headers = headers
.set('Content-Type', 'application/json')
.set('api-key','xxxx-xxx-xxxxx');
this.http.get(this.synonymUrl,headers:headers)
.subscribe(
repsonse =>
console.log(repsonse);
);
错误信息:
ERROR HttpErrorResponse headers: HttpHeaders, status: 0, statusText: “未知错误”,url:null,ok:false,...
邮递员回复:
同样出现错误:
预检响应无效(重定向)
【问题讨论】:
正如我所说,它适用于邮递员,[name] 将是我的 azure 订阅的名称,只是不想公开。 哦闭嘴,我没看到 我读到这与 CORS 有关,但我在 localhost:4200 本地运行 angular 应用程序,尝试在 chrome 上禁用互联网安全但仍然没有运气 嗯,如果是 CORS,那么控制台应该会告诉你 刚刚在“未知错误”之前发布了另一个错误:预检响应无效(重定向) 【参考方案1】:临时解决方案是禁用谷歌浏览器上的网络安全,方法是在 cmd 中运行以下命令(在程序 x86 中找到 chrome.exe 后)
--disable-web-security --user-data-dir
这是因为 chrome 中的 CORS 设置导致重定向飞行,我目前也在尝试在代理上托管,看看是否可以在不禁用网络安全的情况下解决问题,如果成功将在此处发布
【讨论】:
这是在使用 Rider 测试 typescript 时唯一对我有用的东西。它似乎只能直接与 Chrome 一起使用,而不是任何基于 Chrome 的浏览器。我无法让 Brave 或 Edge 工作。以上是关于带有 .Get() 对 Azure 搜索 API 的请求的 Angular HttpClient“未知错误”的主要内容,如果未能解决你的问题,请参考以下文章
向 Azure Blob 存储发出 GET 请求时授权失败 [REST API][Azure Blob 存储]