2017-11-29 3 views
0

나는 안락한 API get()으로 각도 애플리케이션을 개발해 왔습니다. 무단 오류와 같은 몇 가지 오류가 있습니다 : 401 해결되었습니다. 이제 나는 일종의 직접적인 오류가 발생했습니다. CORS 패키지를 추가하려고했습니다.'XMLHttpRequest'에서 'setRequestHeader'를 실행하지 못했습니다. 객체의 상태는 OPENED 여야합니다.

나는 헛된 해결책을 찾고있다. 이전 질문을 다시 편집했지만 응답이없는 것 같습니다.

my-httpservice.service 

import { Injectable } from '@angular/core'; 
import 'rxjs/add/operator/map'; 
import { Http, Response, Headers, RequestOptions, URLSearchParams } from 
'@angular/http'; 


@Injectable() 
export class MyHttpserviceService { 

constructor(private http:Http) {} 

server_grid_Get(){ 

var request = new XMLHttpRequest(); 
var user = "Root"; 
var pass = "root"; 

//Use Basic authentication 

request.setRequestHeader("Authorization", "Basic " + btoa(user + ":" + pass)); 
request.setRequestHeader('Content-Type','application/json'); 
request.setRequestHeader('Access-Control-Allow-Credential','true'); 

request.open("GET", "http://192.100.00.000:0000/_db/xxxxx_app/_api/document/wsdl_test/4934434",true); 

    return this.http.get("http://192.100.00.000:0000/_db/xxxx_app/_api/document/wsdl_test/4934434").map(response => response.json()); 


request.addEventListener('load', function(event) { 
    if (request.status >= 200 && request.status < 300) { 
     console.log(request.responseText); 
    } else { 
     console.warn(request.statusText, request.responseText); 
    } 
    }); 
    request.send(); 
} 
} 

enter image description here

+0

더 자세히 살펴보기 전에 각도의 http 가이드 (v5 https://angular.io/guide/http)를 다시 읽어야한다고 생각합니다. 각도를 사용하는 경우 XHR을 수동으로 생성해서는 안됩니다. Angular가 당신을 위해 그것을 만들 것입니다. 적절한 각도 코드를 얻은 후에 우리는 훨씬 더 쉽게 당신을 도울 수있을 것입니다. –

+0

@PierreMallet haii .., 나는 다시 읽을 것입니다. 하지만 난이 코드를 사용하기 때문에 나는 arangoDBs api를 다루고있다. 완전히 틀렸어? –

+0

당신이하고있는 일과 그 각도가 당신을 위해 그것을 처리하지 않는다는 것을 절대적으로 확신하지 않는 한 수동으로 XHR을 만드는 것은 잘못되었습니다 : D –

답변

1

angular guide

에서 당신은 구성 요소에 다음

@Injectable() 
export class MyHttpserviceService {  
    constructor(private http:HttpClientModule) {} 
    private makeMyRequest() { 
     return this.http.get("http://192.100.00.000:0000/_db/xxxx_app/_api/document/wsdl_test/4934434", { 
      headers: new HttpHeaders() 
       .set('Authorization', 'Basic ' + btoa(user + ':' + pass)) 
       .set('Content-Type','application/json') 
       .set('Access-Control-Allow-Credential','true') 
      }); 
    } 
} 

을 (HttpClientModule 사용 확실하지 오래된 HttpModule을 확인/각 4.3) 같은 것을 사용한다

<yourservice>.makeMyRequest().subscribe(data => { 
    // anything you want 
}); 
+0

이것은 완벽하게 작동합니다 .. !! 내 하루를 절약 해 주셔서 대단히 감사합니다 !! –

관련 문제