jersey 原生ajax,jsonp ajax jersey 跨域访问

本文详细介绍了如何通过JSONP解决RESTful API的跨域访问问题。客户端利用jQuery的jsonp功能发起GET请求,服务器端使用Jersey支持JSONP响应。讲解了JSONP的工作原理,包括只允许GET请求、利用全局函数处理回调等关键点,并提供了前后端的示例代码。同时,强调了未定义jsonp和jsonpCallback时jQuery的默认行为。

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

搜索热词

Rest api 跨域访问 前后端实现

客户端:

 
 

function getIP(){

$.ajax({

url:"http://localhost:8911/api/getinfo",type:"get",jsonp:'jsonpcallback',dataType:"jsonp",//跨域必须用jsonp

cache:false,success: function(obj){

alert(obj.ip+obj.mac);

}

});

}

服务器端:jersey对jsonp的支持

@GET

@Path("getinfo")

@Produces("application/json")

public String getInfo(@QueryParam("jsonpcallback") String jsonpcallback){

String mac="",ip="";

try {

mac = Util.getMac();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

ip = Util.getIp();

return jsonpcallback+"({\"ip\":\""+ip+"\",\"mac\":\""+mac+"\"})";

}

1.jsonp只能使用get请求,解决同源问题,返回javascript代码,因为请求javascript文件是没有同源问题的。

2.当请求数据类型为jsonp时,会将callback=jsonpCallback加在url上,http://localhost:8911/api/getinfo?callback=jsonpCallback

3.前台javascript中定义jsonpCallback函数,此函数必须定义在window下,也就是全局的函数,否则找不到。

4.后台获取请求的callback参数值jsonpCallback,返回字符串"jsonpCallback(result)",result为返回结果。

5.请求返回的是script tag,首先会调用jsonpCallback函数,不管是否找到该函数,都会调用success函数。

6.如果没有定义jsonp和jsonpCallback,jsonp默认为"callback",jsonpCallback会是Jquery自动生成的函数名。 参考

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢寻找一群志同道合、互帮互助的学习伙伴,可以点击下方链接加入:

编程之家官方1群

编程之家官方2群

编程之家官方3群

编程之家官方4群

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值