2017-10-10 2 views
0

내가 위도와 LNG 매개 변수를 보내려면이 코드를 사용하여 각도 4 POST 요청을 만들려고 노력 해요 : 서버 측에Angular 4로 게시물 요청을하는 방법은 무엇입니까?

let data = {lat: this.newLat, lng: this.newLng}; 

this.http.post(url, data) 
    .map(response => response.json()) 
    .subscribe(getResponse => console.log(getResponse)); 

을, 나는 다음과 같은 한 PHP 조각 :

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Headers: Content-Type"); 

if (isset($_POST['lat'], $_POST['lng'])) { 
    $response['msg'] = 'ok'; 
} else { 
    $response['msg'] = 'not ok'; 
} 
echo json_encode($response); 

서버의 응답은 항상 불행히도 항상 'not ok'입니다. 어떤 아이디어가 이것을 해결하는 방법? $_POST 변수는 항상 빈

+0

모든 JS 오류를 ...? – Farkie

+0

아니요, "not ok"메시지가 나타납니다. –

+0

PHP 쪽에서'var_dump (file_get_contents ("php : // input"));를 시도하십시오. POST 매개 변수가 있는지 확인하십시오. – mega6382

답변

0

PHP 전역의 $_POSTapplication/x-www-form-urlencoded 또는 multipart/form-data-encoded 인 데이터 만 래핑한다고 가정합니다.

그러나 요청의 경우 Content-Type이 다른 것입니다.

$post = file_get_contents('php://input'); 

더 많은 정보를 위해이 답변을보고 : 당신은 사용할 필요가 https://stackoverflow.com/a/8893792/2394254

0

배열 요청 구성 객체의 data 속성은 JSON 형식으로 직렬화 객체가 포함 된 경우 the documentation

를 참조한다.

$ httpProvider.defaults.headers.post : (POST 요청에 대한 헤더 기본값) 콘텐츠 형식 : 응용 프로그램/JSON


각도는이 인코딩 JSON 형식의 데이터이며, PHP가 자동으로 구문 분석하는 데이터 형식 중 하나가 아닌 $_POST입니다.

parse JSON as described in this answer이 필요합니다.