노력과 삽질 퇴적물
JS ajax: jsonp 본문
* 자바스크립트, 크로스 도메인 이슈 대응중 하나인 JSONP 방식 예제입니다.
* JSONP방식은 GET통신만 지원합니다.
예제
1) 자바스크립트, request
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 | document.write("<script src='https://code.jquery.com/jquery-1.11.2.min.js'><"+"/script>"); var g_url = "https://domain_B"; var sendObject = { param1: "thisIsJsonp", param2: "withGet" }; jQuery.ajax({ dataType: "jsonp", url : g_url, type: "GET", data: sendObject, jsonp: "jsonpCallBack", success: function (msg) { console.log(msg); alert("성공!"); }, error : function (msg, status, err) { console.log("status=" + status); console.log("msg=" + msg); alert('실패!'); } }); | cs |
2) 자바, 서블릿
-> 리스폰스를 넣을때 리퀘스트에 있던 콜백함수명으로 입력치 않으면 'JSONP response is not defined'쪽 문제가 발생합니다.
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 | import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ... ... ... public class AdvenceReservation extends HttpServlet { @Override protected void doGet(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException { String param1 = servletRequest.getParameter("param1"); String param2 = servletRequest.getParameter("param2"); ... ... ... String callBack = servletRequest.getParameter("jsonpCallBack"); PrintWriter writer = servletResponse.getWriter(); writer.write(callBack +"( {\"result\":\"ok\"} )"); writer.flush(); writer.close(); } } | cs |
참조자료.
[Ajax] JSONP를 이용하여 Cross Domain 해결 :: 개발은 전투다
javascript - AJAX with JSONP returns error Callback is Undefined - Stack Overflow
기타. 변경이력
일자 |
변경이력 |
2019-10-27 | 초안 |
'📂기초 및 세팅 note > 언어. 스크립트 계열' 카테고리의 다른 글
루아: 기초정리(2) (0) | 2019.06.06 |
---|---|
루아: 기초정리(1) (0) | 2019.05.26 |
HTML5: cocos2d-js 기초 (1) (0) | 2018.05.23 |
파이썬3: 기초정리(2) (0) | 2018.05.18 |
파이썬3: 기초정리(1) (0) | 2018.05.14 |