2016-11-23 8 views
0

HTTP get 요청을 사용하여 서버에 pdf 파일이 있는지 확인하려고합니다. 서버 응답에 의해 반환 된 상태 코드가 200이 아닌 경우 테스트 중이며 문제는 항상 상태 코드 200과 statusText "OK"를 얻는 것입니다.Angular 2는 파일이 없어도 this.http.get()에서 http 상태 코드 200을 반환합니다.

여기에이 코드가 내 구성 요소에서 내 서비스 클래스

getPdf(year: number,type: number, num: number): boolean{ 
    this.http.get('http://localhost:4200/app/pdfs/'+year+'/'+type+'/'+num+'.pdf') 
      .subscribe(data => console.log(data)); 
return true; 
} 

입니다 :

ngOnInit(){ 
    this.pdfService.getPdf(2016,71015,1275); 
} 

하고 내가 크롬 개발 도구 콘솔에서 얻을 결과의를

enter image description here

왜 그런 일이 벌어지고 있는지, 내가 어떻게 확인할 수 있는지에 대한 아이디어는 이 방법이 적용 가능하지 않은 경우 파일의 존재 여부

+6

저에게 서버 문제가있는 것 같습니다. 다른 응답 코드가있는 경우 (또는 이미 네트워크 탭의 스크린 샷인 경우) 브라우저 devtools의 네트워크 탭을 확인하십시오. –

+0

서버 문제가 아니라고 생각합니다. 요청 URL : http : // localhost : 4200/app/pdfs/2016/71015/1275.pdf 요청 방법 : GET 상태 코드 : 304 Not Modified 원격 주소 : 127.0.0.1 : 4200 –

답변

2

내 서버가 기본 페이지에없는 저작물에 대한 일부 또는 모든 요청을 리디렉션하고 있다고 생각합니다. 단일 페이지 앱의 경우 다소 일반적입니다. 최소한 일부 폴더에서는 찾을 수없는 응답을 반환하도록 서버 구성을 업데이트해야합니다.

+0

답장을 보내 주셔서 감사합니다. 각도 2 (제공 서비스로 시작됨)와 함께 제공되는 웹 서버를 사용하는 것을 잊어 버렸고, 내 projet 폴더를 우분투에있는 다른 아파치 서버의 루트와 같은 문제가 있습니다. 그래서 리다이렉션이 웹 서버가 아닌 각도로 만들어 졌다고 가정합니다. –

+0

응답에서 본문을 점검하여 내용이 색인과 동일한 지 확인하십시오 .html. 그렇다면 리디렉션이 발생하고 있습니다. 그렇지 않으면 서버 구성을 살펴보고 무슨 일이 일어나는지 확인해야합니다. Angular는 요청을 다른 자산으로 리디렉션하지 않습니다. –

+0

예, 정확하게 애셋 표시 줄의 URL을 변경하지 않고 애셋이 index.html 파일을로드하지 않을 때 응답의 본문은 실제로 index.html의 내용입니다. –