ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Springboot跨域 ajax jsonp请求

2019-07-02 10:43:45  阅读:105  来源: 互联网

标签:map 请求 age name String ajax jsonp public Springboot


SpringBoot配置:

<dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

@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<String, Object> 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"}

都能完成跨域请求及成功获取返回值

标签:map,请求,age,name,String,ajax,jsonp,public,Springboot
来源: https://www.cnblogs.com/JQKA/p/11050245.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有