반응형
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) .")";
?>
반응형
'jQuery' 카테고리의 다른 글
jQuery 라디오 버튼 선택 활성화/ 비활성화 처리 (0) | 2023.04.14 |
---|---|
jquery datepicker 달력 날짜 (0) | 2021.11.21 |
datepicker 특정일 비활성 하기 (0) | 2021.11.21 |
댓글