Anguar2 튜토리얼에 따르면 아래와 같이 POST 메쏘드를 호출한다.
1 2 3 4 5 6 |
this.http .post(this.createSanUrl, JSON.stringify(san), {headers: this.headers}) .toPromise() .then(res => res.json()) .catch(this.handleError); |
그러면 파라미터로 제공되는 san이 JSON 데이터 형태로 변환되어 POST 요청의 BODY를 통해서 전달된다.
그리고, 이 요청을 받는 PHP 사이트에서는 아래와 같이 수신한다.
1 2 3 4 5 6 7 |
public function method1(){ ... $data = $this->input->post('name'); ... $this->load->view("MyView",$data); } |
이렇게 했드니 데이터가 계속 누락되었다. 항상 null이다.
form-data 형식으로 넘기니 잘 넘어간다. 그런데 이 경우 데이터를 항상 “var1=val2&var2=val2….”와 같이 만들어줘야하고,
처음부터 모냥이 빠지니… 답을 찾아보기로 한다.
결론적으로 아래와 같이 해결함. 코드의 의미는 잘 모름. 머리아푸니 이정도 하고 넘어가자!!!
1 2 3 4 5 6 7 |
public function add_san() { $postdata = file_get_contents("php://input"); $request = json_decode($postdata); $name = $request->name; ... } |