2016-10-29 3 views
0

우선. 제 질문을 참아주십시오.Angular 2 Http Post 요청에 혼란.

내가하고있는 일은 문자열의 응답 데이터를 반환하는 ajax 요청을 수행하는 것입니다.

은 여기 내 PHP이 작동하지 않습니다

let headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }); 
let options = new RequestOptions({ headers: headers }); 
return this.http.post('./app/parsers/peenoise.php', '', options) 
    .then(val => console.log(val)) 

<?php 
    header('Access-Control-Allow-Origin: *'); 

    echo 'Peenoise Crazy'; 
?> 

HTTP 요청입니다. 하지만이 URL을이 주소로 바꾼다면 http://localhost:8912/app/parsers/peenoise.php. 그것은 작동합니다.

질문

  1. ./app/parsers/peenoise.php 작동하지 않는 이유는

    ?
  2. URL을 http://localhost:8912/app/parsers/peenoise.php으로 변경하면 header('Access-Control-Allow-Origin: *')을 입력해야하는 이유는 무엇입니까? 그것은 내 애플 리케이션의 동일한 폴더에 있습니다.
  3. http://localhost:8912/route/to/phpfolder.php의 URL을 전달하지 않고 http.post를 사용하는 방법은 무엇입니까?

어떤 도움을 주시면 감사하겠습니다. 제발 이걸 안내 해줘. 감사합니다

+0

quando O 사용자 선호도 FAZ 우마 solicitação 우산 아약스 각 2, O pedido é 드 navegador 할 cliente입니다 . 서비스 제공자는 귀하의 서비스 제공자가 아닙니다. Por isso, servinor를 필요로하는 이용 가능. 고객은 아무런 반응을 보이지 않습니다. 원하는 방식으로 서버에 요청할 수 없습니다. –

+0

'/ app/parsers/peenoise.php' (선행 점없이)를 사용해 보셨습니까? 디렉토리 경로 표기법을 사용하는 것처럼 보이지만 도트는 URL과 같은 방식으로 해석되지 않습니다. –

+0

@ user3608792 예. 나는 모든 것을 시도했지만 콘솔에 오류가 없으며 작동하지 않습니다. –

답변

0

게시물은 작동하기 위해 전체 또는 상대 URL이 필요합니다. 당신이 사용할 수있는 데이터를 게시하는 백엔드 서버에 대한

this.http.post('/parsers/peenoise.php', '', options) 
0

사실은 각도 보이는, 그래서 당신의 POST 요청에 상상

this.http.post('./app/parsers/peenoise.php', '', options).then(val => console.log(val)) 

아래에이 위치에 게시 요청을 만들기 위해 노력할 것처럼

: 4200

이제
http://localhost:4200/app/parsers/peenoise.php 

귀하의 질문에 대답 : 는 로컬 호스트에서 각 봉사하는 상상 실제로 백엔드 서비스

2에서 그것을 찾기 위해 노력하고 있기 때문에 당신이 당신의 위치는 것과 아닌 다른 서버에 HTTP 요청을 할 때마다

1) ./app/parsers/peenoise.php 당신은 header('Access-Control-Allow-Origin: *')을 둘 필요가) 작동하지 않습니다 현재 사용하고 계시면 사용하지 않으면 Connection_refused_Error이됩니다. mockBackEnd를 사용

3) 다음 mockAckends가 바로 각 사용하려는 경우, in-memory-web-api

예는 here

관련 문제