在Angular中使用HTTPS API

时间:2017-04-24 07:39:35

标签: c# angular

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; };

1 个答案:

答案 0 :(得分:0)

您需要像这样在服务器端进行配置

HttpConfiguration config;

如果url与请求网址相同,那么

config.EnableCors();

如果不是那么

config.EnableCors(new EnableCorsAttribute("*", "*", "*"));