그러냐

JSONP 를 사용한 PHP 콜백 본문

jquery

JSONP 를 사용한 PHP 콜백

관절분리 2016. 1. 27. 18:24
반응형
jQuery 에서는 JSONP 데이터를 사용해서 같은 도메인 뿐만 아니라 다른 도메인끼리의 통신도 지원한다.
같은 도메인끼리는 자동으로 ajax 통신으로 변환된다.

요청받는 쪽 PHP: (login.php)

<?
include 'dbconnect.php';

$id = trim($_GET['id']);
$pass = md5(trim($_GET['pass']));

$sql = "SELECT * FROM members WHERE id='$id'";
$result = mysql_query($sql);
if (!mysql_num_rows($result)) {
    $jsonData=  json_encode(array('return'=>'잘못된 아이디입니다'));
} else {
    $data = mysql_fetch_array($result);
    if (trim($data[pass]) != $pass)
        $jsonData = json_encode (array('return'=>'패스워드가 틀렸습니다'));
    else{
        $jsonData = json_encode(array('return'=>'로그인 되었습니다'));
    }   
}
echo $_GET['callback'] . '(' . $jsonData . ');';
?>

echo되는 데이터는 JSONP 형태로써 콜백함수를 포함하고 있다

요청하는 쪽 javascript:
2번째 인수로 콜백 함수를 지정한다.

<script type="text/javascript">
          jQuery.getJSON("PHP_URL/login.php?email=YourEmail&pass=YourPassword&callback=?", 
            function(data) {
                alert("return: " + data.return);
            });
</script>

<주의>
여기서는 흔한 로그인을 예제로 두었지만 다른 도메인에서의 로그인 허용은 보안상 위험요소가 될수 있다.

반응형

'jquery' 카테고리의 다른 글

jquery datepicker  (0) 2016.01.27
jquery timepicker  (0) 2016.01.27
jquery ui 로 할 수 있는것  (0) 2016.01.27
jquery ajax error 날때 (php)  (0) 2016.01.27
jquery tree 사용하기  (0) 2016.01.27