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;
        }
  • 相关阅读:
    js中剩余参数
    css中 @mixin的使用
    前端Vue中常用rules校验规则
    vue 运行时报错: Cannot assign to read only property 'exports' of object 'Object'
    webpack 常用的loader
    二维码图片合成 ----合成图片以便微信长按保存(移动端)
    VUE中引入第三方JS
    小程序开发者工具--快捷键
    小程序注意事项
    webpack+ES6+less 开发环境搭建
  • 原文地址:https://www.cnblogs.com/suhfj-825/p/8889007.html
Copyright © 2011-2022 走看看