본문 바로가기
jQuery

php AJAX 외부도메인 호출예

by 씨엔아이소프트 2021. 4. 28.
반응형

jQuery AJAX 로 자신의 도메인이 아닌 다른 외부도메인의 주소를 호출시 일반적인 방법으로 값을 가져올 수가 없습니다.

타도메인을 호출할 때는 dataType 을 jsonp 로 설정하여야 하고 PHP 에서는 callback 함수로 리턴하여야 합니다.

example.html

  예제1) jsonpCallback 을 설정한 경우

 

function myCallFunction(v) { 
	alert(v.param1 + ", " + v.param2); 
} 
$(document).ready(function(){ 
	var request = $.ajax({ 
		type: 'POST', 
		data: {param1:'v1',param2:'v2'}, 
		url: 'https://www.ivps.kr/zipcode/ajax-request.php', 
		dataType: "jsonp", 
		jsonpCallback: "myCallFunction", 
		success:function(result){ 
			console.log('ret : ' + result); 
		} 
	}); 
});


 예제2) jsonpCallback 설정이 없는 경우

 

$(document).ready(function(){ 
	var request = $.ajax({ 
		type: 'POST', data: {param1:'v1',param2:'v2'}, 
		url: 'https://www.ivps.kr/zipcode/ajax-request.php', 
		dataType: "jsonp", 
		success:function(result){ 
			console.log('ret : ' + result); 
			alert(result.param1 + ", " + result.param2); 
		} 
	}); 
});

  둘 다 됩니다.
  설정하면 설정한 자바스크립트 함수가 호출되고 success 함수가 실행됩니다.
  미설정시 success 함수에서 처리를 하면 됩니다.

ajax-request.php

 

<?php 
	header('Content-Type: text/html; charset=UTF-8'); 
	$callback = $_REQUEST['callback']; 
	$param1 = $_REQUEST['param1']; 
	$param2 = $_REQUEST['param2']; 
	$result = array("param1" => $param1, "param2" => $param2); 
	echo $callback."(". json_encode($result) .")"; 
?>

 

 

 

출처 : itrooms.tistory.com/786

반응형

댓글