zoukankan      html  css  js  c++  java
  • Ajax跨域请求

    1、在Ajax请求客户端中添加dataType="jsonp"

    2、服务端处理方式

    方式一:判断是否是jsonp请求,后台方法中要接收参数String callback

        如果callback不是空的,那么就是jsonp请求,返回jsonp格式的字符串callback(json串)

        如果是空的,平常处理

    方式二(spring4.1以上可以使用):

    也要接收callback参数,做判断是否空

    包装响应结果:new MappingJacksonValue(result)

    设置jsonp的回调方法:new MappingJacksonValue(result).setJsonFunction(callback)

    //方式一:通用版本
        /*@RequestMapping(value="/user/token/{token}",method=RequestMethod.GET,
                //指定返回响应数据的content-type
                produces=MediaType.APPLICATION_JSON_UTF8_VALUE)
        @ResponseBody
        public String getUserByToken(@PathVariable String token,String callback) {
            TaotaoResult result = userService.getUserByToken(token);
            //判断是否为jsonp请求
            if (StringUtils.isBlank(callback)) {
                return callback + "(" +JsonUtils.objectToJson(result) + ");";
            }
            return JsonUtils.objectToJson(result);
        }*/
        
        //方式二:spring4.1以上的版本可以用
        @RequestMapping(value="/user/token/{token}",method=RequestMethod.GET)
        @ResponseBody
        public Object getUserByToken(@PathVariable String token,String callback) {
            TaotaoResult result = userService.getUserByToken(token);
            //判断是否为jsonp请求
            if (StringUtils.isBlank(callback)) {
                //包装响应结果
                MappingJacksonValue mappingJacksonValue = new MappingJacksonValue(result);
                //设置jsonp的回调方法
                mappingJacksonValue.setJsonpFunction(callback);
                return mappingJacksonValue;
            }
            return result;
        }
  • 相关阅读:
    flask项目部署
    FastDFS分布式文件系统
    《app》团队冲刺二
    《APP》团队开发一
    软工二年级团队项目----自律小助手
    团队项目新闻app的需求分析
    团队成员及团队项目
    团队冲刺第八天
    团队冲刺第七天
    团队冲刺第六天
  • 原文地址:https://www.cnblogs.com/suhfj-825/p/8889007.html
Copyright © 2011-2022 走看看