2017-12-05 4 views
0

POST 요청시 내 머리글을 얻을 수 없으며 인터넷에 게시 된 모든 솔루션 사용자를 시도했습니다. 여기 각도 2 POST 헤더 오류

코드입니다 :

여기
import { Injectable } from '@angular/core'; 
import { HttpClient, HttpHeaders} from '@angular/common/http'; 
import { Observable } from "rxjs"; 
import { Headers } from '@angular/http'; 

@Injectable() 
export class APIService { 
    constructor(private http:HttpClient) { } 

    function(url, var1, var2):Observable<any>{ 

     let data = { 
      "status": var1, 
      "duration": var2 
     }; 

    let message = JSON.stringify(data); 

    return this.http.post(url, message, <HELP>); 
} 

내가 시도한 것들 :

const headerDict = { 
    'Content-Type': 'application/json', 
    'Accept': 'application/json', 
    'Access-Control-Allow-Headers': 'Content-Type', 
}; 

const requestOptions = { 
    headers: new Headers(headerDict), 
}; 
return this.http.post(url, message, requestOptions); 

return this.http.post(url, message, {headers:{'Content-Type': 'application/json'}}); 

//added above -> import { Headers, RequestOptions } from '@angular/http'; 

const headers = new Headers({ 'Content-Type': 'application/json' }); 
const options = new RequestOptions({ headers: headers }); 
return this.http.post(url, message, options); 

var headers = new Headers(); 
headers.append('Content-Type', 'application/json'); 
let options = new RequestOptions({ headers: headers }); 
return this.http.post(url, message, options); 

및 일부는 기억이 안납니다. 그들 중 누구도 일하지 않았습니다. 나는 몇 시간 동안 붙어있어. 오류의 대부분은 다음과 같습니다

"유형 'RequestOptions'의 인수가 {헤더 '유형의 매개 변수에 할당 할 수없는? HttpHeaders, 관찰?"몸을 "; PARAMS? HttpParams (...)"

'헤더'속성의 형식이 호환되지 않습니다.

형식 '헤더'를 'HttpHeaders'형식에 할당 할 수 없습니다.

'헤더'유형에 '헤더'속성이 없습니다.

"메시지"를 출력 할 때 출력은 원하는 것이지만 헤더없이 게시되지 않습니다 (API에 게시하려고하면 415 오류가 발생 함). 유일한 논리적 인 설명은 누락 된 헤더가 작성된다는 것입니다. 작동하지 않지만 헤더로 컴파일되지 않습니다. 도와주세요?

FYI : OS = Windows. 나는이 포스트 시도와 함께, 나의 도착과 함께 전에 결코 문제가 없었다. 나는 운영 체제가 이것에 영향을 미칠지 모르겠다. 그래서 나는 당신에게 알려주는 것이 더 낫다고 생각했다.

+2

참고하는'Headers''에서 각도/http'와'HttpHeaders' @ http'/일반/각도는 같은 것이 아니다 @'에서. 이것은 분명해야합니다 : * "유형 '헤더'는 'HttpHeaders'유형에 할당 할 수 없습니다."* 일반적으로 클라이언트 하나를 골라 붙어 있습니다. – jonrsharpe

+0

안녕하세요 @ jonrsharpe, 처음에는 @ 각도/공통/http에서 HttpHeaders했다. 오류 및 인터넷 솔루션으로 @ angular/http에서 헤더를 추가했습니다. 귀하의 제안에 따라 HttpHeaders 가져 오기를 가져 왔습니다. 이상하게도, 오류가 여전히 있습니다 : '헤더'속성의 유형이 호환되지 않습니다. '헤더'유형을 'HttpHeaders'유형에 지정할 수 없습니다. '헤더'유형의 속성이 없습니다. –

+0

HttpClient 및 컴파일 HTTP 삽입 : "오류 : HTTP 공급자가 없습니다!"실행되지 않습니다. 그러나 나는 지금 그것을 찾을 것이다. 한 걸음 앞으로 나아가는 것입니다. 적어도 컴파일하는 것입니다! 고마워요 :) –

답변

1

이 시도 :

return this.http.post(url, message, { 
    headers: new HttpHeaders().set('Content-Type', 'application/json') 
          .set('Accept', 'application/json') 
          .set('Access-Control-Allow-Headers', 'Content-Type') 
}); 
+0

그것은 내가 한 일이다 :) 작동한다. 고맙습니다! –

+0

그것은 내가 한 것입니다 :) 작동합니다. 고맙습니다! –