jsonp请求数据的设置

关于jsonp跨域数据访问的设置

如果端口和主机对于两个页面是相同的,则两个页面具有相同的源,否则就是不同源的。
利用< script >元素的开放策略,网页可以得到从其他来源动态产生的JSON资料,而这种使用模式就是所谓的JSONP。用JSONP抓到的资料并不是JSON,而是任意的JavaScript。

重点是dataType,这个参数必须要设置成jsonp,指定服务器返回的数据类型为jsonp格式

			$.ajax({
			     url: "http://localhost:8080/navigation",
			        type: "GET",
			        async: false,
			        dataType: "jsonp", //指定服务器返回的数据类型
			        jsonp:"callback",  //Jquery生成验证参数的名称
			        success: function (result) {
			           console.log(result);
			         }
			});

后端

前端注意与后端沟通约定jsonp的值,这个我看都是用默认callback。

将接收的的验证参数callback与实际要返回的json数据按“callback(json)”的方式构造。

 @ResponseBody
    @RequestMapping("/navigation")
    public String getMySeatSuccess(@RequestParam("callback") String callback){
        Setting setting=new Setting();
        Map<String,String> map=new HashMap<>();
        map.put("set","newest");
        //  logger.info(callback);
        return callback+"("+setting.toJson(map)+")";
    }

jQuery ajax方式以jsonp类型发起跨域请求,其原理跟< script >脚本请求一样,因此使用jsonp时也只能使用GET方式发起跨域请求。跨域请求需要服务端配合,设置callback,才能完成跨域请求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值