도메인 간 문제 해결 방법(JSONP 편)

2147 단어
도메인 간 문제 해결 방법 (1)
1. 크로스 도메인이란 무엇입니까?
도메인 간, 즉 도메인 이름, 포트 번호, 프로토콜 등이 다르면 접근에 도메인 간 문제가 발생할 수 있다
2. JSON이 도메인 간 해결
eg1:localhost:8081에서localhost:8082/index/demo에 접근
script 탭으로 크로스 문제 해결
  • script image iframe 등 태그는 모두 크로스 영역
  • 
        
              
    
    
    
    // :8081 /* */ /* :ShowMessage( {"info":"requestSuccess"} )*/ function ShowMessage(data) { console.log(data.info) } /* head script, */ function demoFunc() { var ele=document.createElement("script"); ele.type='text/javascript'; ele.src="http://localhost:8082/index/demo?callback=ShowMessage"; $('head').append(ele) } /* */ function demoFunc(){ $('head').append("<script src='http://localhost:8082/index/demo?callback=ShowMessage'> <\/script>") /* ‘\’ */ } // :8082 @Controller @RequestMapping("/index") public class IndexController { @RequestMapping("/demo") @ResponseBody public String demo(@RequestParam("callback") String callback){ String jsonData="{\"info\":\"RequestSuccess\"}"; String resInfo=callback+"("+jsonData+")"; return resInfo; } // : ( * json * ) }

    클라이언트가 aax 요청을 사용합니다
     function demoFunc() {
          $.ajax({
              url:'http://localhost:8082/index/demo',
              type:'get',
              dataType:'jsonp',  //            
              jsonp:'callback',  //             callback  ?callback=ShowMessage
              jsonpCallback:'ShowMessage',   //       
              success:function (data) {
                  console.log("success")
              }
          })
    }
    

    주의: jsonp는post방법을 지원하지 않기 때문에 폼 등 일부 상황에서 jsonp를 사용할 수 없습니다. 즉, 다음에 CORS의 해결 방법을 설명할 것입니다.

    좋은 웹페이지 즐겨찾기