我正在尝试将Get请求发送到我的服务器(Microsoft 2012)。我已经添加了this solution。但这是解决方案,我的get请求已转换为Options方法。
const httpOptions = {
headers: new HttpHeaders({
'Content-Type': 'application/vnd.sas.datamgmt.jobflow.metadata+json; charset=utf-8',
'Authorization': 'Basic' + btoa('username:password')
})
};
我也添加了:
httpOptions.headers.set('username', 'password');
httpOptions.headers.append('Access-Control-Allow-Origin', '*');
httpOptions.headers.append('Access-Control-Allow-Credentials', 'true');
httpOptions.headers.append('Access-Control-Allow-Methods', 'GET,POST,OPTIONS');
this.typesOfDBs = this.http.get<Info[]>(this.ROOT_URL, httpOptions);
我查看了我的请求,然后看到该请求现在是选项请求。如何处理它并以Get方法发送请求?
是的,每当您从浏览器调用任何API时,它都会调用OPTIONS来检查API是否真正可调用或服务器可以按照指定的条件处理请求。
如果在您的情况下,选项调用使您成功,那么浏览器必须使用GET方法类型调用实际的API。
如果不使用GET方法类型进行调用,则标题可能会发送更多或更少的消息。
这种类型的请求可与Postman或fiddler或API测试工具配合使用,但会导致浏览器出现问题。
我建议如果有任何拦截器尝试注释标头,然后再测试此API,则应首先检查标头。
希望如此对您有帮助。