2017-04-24 36 views
0
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。在Angular中使用HTTPS API

ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate Certificate, X509Chain Chain, SslPolicyErrors sslPolicyErrors) 
     { return true; }; 

回答

0

你需要在服務器端配置像這樣

HttpConfiguration config; 

如果URL是相同的請求URL,然後

config.EnableCors(); 

如果沒有的話

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