java和jQuery实现跨域
来源:互联网 发布:mac不能无线键盘 编辑:程序博客网 时间:2024/06/08 18:46
转载:http://girl-luo.iteye.com/blog/2325074
在学习下面代码时区,如果基础不太好请到该网站:http://www.imooc.com/video/6239
jquery端代码
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
java web端代码
@ResponseBody
@RequestMapping(value = "/jsonp",method=RequestMethod.GET)
public String jsonp(HttpServletRequest request) {
String callback =request.getParameter("callback");
return callback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
}
执行结果
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]
以上是不指定任何参数,jquery自动传递一个callback参数到后台,成功后,回调success函数。
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
jsonp:'jsoncallback',//自定义参数名称
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
java web端代码
@ResponseBody
@RequestMapping(value = "/jsonp",method=RequestMethod.GET)
public String jsonp(HttpServletRequest request) {
String jsoncallback=request.getParameter("jsoncallback");//指定接受参数为jsoncallback
return jsoncallback+"([{name:'jsonp',age:'30'},{name:'jack',age:'90'}])";
}
以上是自定义参数名称,后台指定接受通过jsonp冒号传递的函数名称。
$.ajax({
async:false,
url: 'http://www.**.com/**/jsonp', // 跨域URL
dataType: 'jsonp',
jsonp:'jsoncallback',//自定义参数名称
jsonpCallback:"success_jsonpCallback",//定义回调函数名称
timeout: 5000,
success: function (json) {
alert(JSON.stringify(json));
}
});
var success_jsonpCallback=function(json){
alert(JSON.stringify(json)+"********");
}
执行结果
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]********
[{"name":"jsonp","age":"30"},{"name":"jack","age":"90"}]
以上是自定义回调函数名称,执行成功后,先执行jsonpCallback定义的回调函数,后执行success函数。
自己感觉这个方法有以下两个缺点:
①后端返回的json字符串时,要拼接上前端传过来的callback数据,所以自己得在后台用java把类解释成json数据格式。如果是用Spring MVC或者Spring Boot的话,就会莫名奇妙的增加了自己的工作量。
② 只能用GET请求,不能使用post请求
另一个超级简单的方法:在幅度按进行以下header设置既可。前端就可以自由进入
public Result Logon(@PathVariable("id") Integer id, HttpServletResponse res){// 用来设置允许那些网址可以过来。*号代表所有都可以进来 res.addHeader("Access-Control-Allow-Origin","*");// 允许那些请求可以过来,包括POST,GET,DELETE,PUT res.addHeader("Access-Control-Allow-Methods","POST,GET"); return logonService.getMassage(id); }
- java和jQuery实现跨域
- Java+jquery+jsonp实现跨域
- cors实现跨域(.net和jquery)
- jQuery+Ajax+jsonp+java实现跨域访问
- 利用JQuery和Servlet实现跨域提交请求
- java利用jquery和smartupload实现头像上传切割效果
- 用Java和Jquery实现了一个砸金蛋例子
- jQuery+ajax+jsonp+Java跨域访问原理和实例
- jQuery和java后台的jsonp跨域问题
- 跨域访问Jquery实现
- jQuery实现跨域访问
- jquery实现跨域访问
- JAVA+JQuery实现异步分页
- jQuery-File-Upload java实现
- jquery实现折叠和展开
- jquery实现显示和隐藏
- jQuery实现全选和全不选
- java 结合jQuery实现跨域名获取数据
- 三大主流框架的优缺点
- hdu-1532
- 模拟
- HDU5950Recursive sequence(构造矩阵+矩阵乘法)
- php使用session来控制仅有一个账号登录应用
- java和jQuery实现跨域
- python-数字 字符串 列表的转换
- LeetCode 383 Ransom Note
- Unity 基础常用的脚本(一)
- C/C++之常用字符串比较总结
- Java中对象的赋值与引用
- 一个m*n的矩阵,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。(高效率)
- Elasticsearch查询
- JS控制图片滚动的效果