티스토리 뷰

IT 관련/FrontEnd

jQuery를 이용한 jsnop

서관실 2014. 12. 29. 16:47

ajax는 동일도메인에서 통신이 가능하고 다른 도메인간의 통신에서는 안되죠. ㅜㅜ
API사용같은 경우나... 해결책으로는 동일도메인에 서버사이드로 프록시 페이지를 제작해서 통신을 하기도하죠.

SSL을 사용하기위한 HTTPS 호출시 다른도메인으로 인식하여 크로스도메인 문제로 AJAX는 작동하지 않고
우회를 위하여 ssl 사용시 우회용으로 JSONP를 사용할수는 있겠지만 보안상의 문제가 발생할수 있다고하네요.
ssl이 필요한 경우라면 일반적인 폼전송형태로 구현하거나 주소를 맞춰서 호출해야겠죠.


SSL이 아니더라도 타 도메인에 호출하여 결과를 줏어와야할경우는 있고
크로스도메인 해결을 위해 src로 호출할경우 제한이 없는 점을 이용하는건데 jquery에서는 요놈을 ajax 사용하듯 제공됩니다. 뭐 한마디로 꼼수

전 야메니까 자세항 설명은 생략 ㅜㅜ (위키 찾아보세요~

[호출 코드 ]

  1. $.ajax({
  2.     type: "POST",
  3.     url: "http://localhost/jsonp_callback",
  4.     data: {"id": "test"},
  5.     dataType: "jsonp",
  6.     jsonp:"callback",
  7.     success: function(data) {
  8.         if(data.state=="success"){
  9.             alert("성공하였습니다.");
  10.         }else{
  11.             alert("실패하였습니다.");
  12.         }
  13.     },
  14.     error: function(xhr, status) {
  15.         alert("[" + status + "]\n\n" + xhr.responseText);
  16.     }
  17. });


[응답샘플]
callback(json문자열...)

호출시 dataType:jsonp로 설정하고
jsonp 속성에 값을 적당히 주시면 그 값으로 json문자열을 쌓는 형태로 되돌려주면 됩니다.

뭐 그냥 쓸일 있어서 대충 검색해보고 한번 써본거라 틀린거 있을지도;;


'IT 관련 > FrontEnd' 카테고리의 다른 글

FD AIR Mobile AS3 App :: HelloWorld  (0) 2014.12.31
AS3 개발툴 FlashDevelop  (0) 2014.12.31
a:pseudo-class 순서  (0) 2009.04.20
커서모양 :: CURSOR  (0) 2009.03.26
class 선택 :: getElementByClass  (0) 2009.03.15
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함