jsonp调用

本文介绍了一个使用JSONP实现跨域请求的例子,详细展示了如何通过jQuery的$.ajax方法发送GET请求,并在服务器端如何根据客户端提供的回调函数名称返回JSONP格式的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

var RR = Robots = {
init : function(){
    // 初始化导航栏
    this.initNavigation();
    },
//初始化导航栏
initNavigation : function(){ 
$.ajax({
   type:"get",    //请求方式
   //async:true,    //是否异步
   url:"http://127.0.0.1:81/rest/item/cat/list",
   dataType:"jsonp",    //跨域json请求一定是jsonp
   jsonp: "callback",    //跨域请求的参数名,默认是callback
   jsonpCallback:"cell",    //自定义跨域参数值,回调函数名也是一样,默认为jQuery自动生成的字符串
   //data:{"query":"civilnews"},    //请求参数
   /* beforeSend: function() {
       //请求前的处理
    alert("处理前");
   },*/
   success: function(data) {
       //请求成功处理,和本地回调完全一样
    alert(data);
    alert("处理成功");
   },
//    complete: function() {
//        //请求完成的处理
//     alert("处理完");
//    },
   error: function() {
       //请求出错处理
    alert("出错");
   }
});

    }

}



//支持jsonp的 直接返回字符串  有传参callback  produces设置返回结果的类型为json  springmvc中的
@RequestMapping(value="/list",produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8")
@ResponseBody  //返回对象时自动尝试把对象转换成json
public String getCategoryList(String callback){
//System.out.println("接收到请求");
ItemCatResult result=itemCatService.getItemCatList();
if(StringUtils.isBlank(callback)){//如果callback为空
//正常返回 ,需要把result转换成字符串
String json = JsonUtils.objectToJson(result);
//System.out.println("输出普通的");
return json;
}
//不为空,需要支持jsonp调用
String json=JsonUtils.objectToJson(result);
//System.out.println("输出callback"+json);
return callback+"("+json+");";
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值