Springboot 크로스 필드 ajax jsonp 요청

SpringBoot 설정:

       org.springframework.boot
       spring-boot-starter-web

 
@SuppressWarnings("deprecation")
@Configuration
public class CorsFilter extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedHeaders()
                //
                .allowedMethods("*")
                //           
                .allowedOrigins("*")
                //         Cookie。     Cookie    CORS   。   true          ,Cookie                。
                .allowCredentials(true)
                //          。        ,                                    ,    ,        
                .maxAge(3600);
    }
}
@SpringBootApplication
@ComponentScan
public class CorsDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(CorsDemoApplication.class, args);
    }

}
@Controller
@RequestMapping("/cors")
public class CorsController {

    @RequestMapping(value="/index")
    @ResponseBody
    public String corsTest(HttpServletRequest request,String name,String age) {
        String jsonpCallback = request.getParameter("callback");
        Map map=new HashMap<>();
        map.put("name",name);
        map.put("age",age);
        map.put("date",new Date());
        return jsonpCallback + "(" + JSON.toJSONString(map) + ")";
    } 
}

Ajax 요청:
          $.ajax({
                            url:"http://62.234.65.61:8090/cors/index",
                            type:"POST",
                            data:{
                                 "name":"amdin",
                                 "age":20
                            },
                            dataType:"jsonp",
                            /* jsonp: "callback",//             ,    jsonp         (     :callback)
                            jsonpCallback:"callback",//    jsonp      ,   jQuery          ,    "?",jQuery          */
                            success: function(data){
                                 console.log("res:"+JSON.stringify(data));
                            },
                            error: function(){
                                 alert('fail');
                            }
                        });

요약:
테스트 1: 프론트 + 백 스테이지 로 컬 실행, IP 같은 포트 가 다 릅 니 다.   테스트 결과: res: {"date": 1560913652938, "name": "amdin", "age": "20"}
테스트 2: 전단 로 컬 실행, 배경 은 텐 센트 클 라 우 드 서버 에 놓 습 니 다. 테스트 결과: res: {"date": 1560913652938, "name": "amdin", "age": "20"}
크로스 필드 요청 을 완료 하고 반환 값 을 성공 적 으로 가 져 올 수 있 습 니 다.

좋은 웹페이지 즐겨찾기