var urlNextThink = 'https:XXXXXXX:1671/2/query?platform=windows&platform=mac_os&query=(select (id name) (from device))&format=json';
let headers = new Headers({ 'Accept': 'application/json' });
headers.append('Access-Control-Allow-Methods', 'GET');
headers.append('Access-Control-Allow-Origin', '*');
headers.append('Access-Control-Allow-Headers', 'Content-Type,Accept');
headers.append('Access-Control-Allow-Credentials', 'true');
headers.append('Authorization', 'Basic ' + btoa('XXX' + ':' + 'XXX'));
//headers.append('Authorization', 'Basic ' + btoa('demo' + ':' + 'demo'));
let options = new RequestOptions({ headers: headers, withCredentials: true });
return this.http
.get(urlNextThink, options)
.map(res => console.log(res));
我收到错误401(未经授权)。早些时候,当我使用Asp.net调用此API时,我必须在代码中添加以下行,然后修复了相同的错误401(未授权)。我认为SSL限制了对API的身份验证。
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate Certificate, X509Chain Chain, SslPolicyErrors sslPolicyErrors)
{ return true; };
答案 0 :(得分:0)
您需要像这样在服务器端进行配置
HttpConfiguration config;
如果url与请求网址相同,那么
config.EnableCors();
如果不是那么
config.EnableCors(new EnableCorsAttribute("*", "*", "*"));