javascript 세팅 (API서버로 바로 호출해도 되고, 자신의 백엔드 서버로 호출해도 됨 - 아래 CURL예시)
// FormData 형태로 전송
var formData = new FormData(); // FormData 선언
// 데이터 세팅
formData.append("customer_name", c_name);
formData.append("customer_phone", c_phone);
formData.append("customer_type", c_type);
var request_uri = "https://request_url.com";
$.ajax({
type: 'post',
cache: false,
url: request_uri,
data: formData,
processData: false, // FormData로 전송할때 꼭 써줘야할 부분. 안써주면 에러남
contentType: false, // FormData로 전송할때 꼭 써줘야할 부분. 안써주면 에러남
beforeSend : function(xhr){ // header 세팅
xhr.setRequestHeader("REGISTRATION_ID", "asodifjasoi123123123");
xhr.setRequestHeader("API_TOKEN", "1234aa-123aa-asdfsd9-asdf-aafdfb");
},
success:function(data) {
if(data) {
console.log(data);
alert('전송이 완료 되었습니다.');
}
},
error:function(request,status,error){
console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
alert('전송이 완료되지 않았습니다.');
}
});
동일 서버의 php 파일에서 CURL로 API호출 시, 위 javascript ajax를 받아서 세팅 하는 방법
header('Content-type: multipart/form-data; charset=UTF-8');
header('Access-Control-Allow-Origin: *');
/* 데이터 처리 */
$c_name = $_POST['customer_name'];
$c_phone = $_POST['customer_phone'];
$c_type = $_POST['customer_type'];
$REQUEST_URI = "https://request_url.com";
$API_TOKEN = "asdfasdf";
$REGISTRATION_ID = "aaaa111aaa";
/* CURL 호출 */
$post_data = array(
"name" => $c_name,
"phone" => $c_phone,
"type" => $c_type,
);
$header_data = [];
$header_data[] .= 'Content-Type: multipart/form-data';
$header_data[] .= 'API_TOKEN: '.$API_TOKEN;
$header_data[] .= 'REGISTRATION_ID: '.$REGISTRATION_ID;
$ch = curl_init($REQUEST_URI);
curl_setopt($ch, CURLOPT_URL, $REQUEST_URI); // URI 설정
curl_setopt($ch, CURLOPT_POST, true); // post로 보내기
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // post data의 크기 측정
curl_setopt($ch, CURLOPT_HEADER, true); // 헤더정보를 보내도록 함
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data); // header 지정하기
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 리턴 설정- false : curl_exec 결과값을 브라우저에 바로 보여줌, true : 결과값을 변수에 저장하여 사용 가능
$curl_response = curl_exec($ch); // 리턴값 받기
curl_close($ch); // curl 종료
// json 형태로 응답
$response = var_dump($curl_response);
echo "{response:".$response."}";
반응형