ajax跨域请求的三种方式(js+java)
来源:互联网 发布:pkpm安全计算软件 编辑:程序博客网 时间:2024/06/05 01:56
1 : 采用jsonp (只支持get请求,后端返回的jsonp格式json,后端无需做请求放行操作)
/* $.ajax({ type: "GET", // 此处只能是get请求 post请求后端即使修改(method = RequestMethod.POST)了也不行 async: false, url: "http:localhost:8080/APmanager-webapp/api/simCard/table?id=1&serial=123", dataType: "jsonp", jsonp: "callback", jsonpCallback:"flightHandler", success: function(json){ alert('您查询到航班信息:票价: ' + json[0] + ' 元,余票: ' + json[1] + ' 张。'); }, error: function(){ alert('fail'); } }); */ // Java 后端 /* @RequestMapping(value = { "/simCard/table" }, produces = "application/json; charset=UTF-8",method = RequestMethod.GET) @ResponseBody //flightHandler public String save1(@RequestParam(value = "id", required = false) String id, @RequestParam(value = "serial", required = false) String serial, HttpServletRequest request, HttpServletResponse response) { JSONObject resultObj = new JSONObject(); JSONArray arr = new JSONArray(); arr.add("a"); arr.add("b"); arr.add("c"); System.out.println(id); System.out.println(serial); return "flightHandler(" + arr.toString() + ")"; } */
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
2 : 采用原始ajax (后端需要拦截请求 设置指定路由放行)
// Java后端代码必须设置response.setHeader("Access-Control-Allow-Origin","*"); //response.setHeader("Access-Control-Allow-Methods","GET,POST"); 请求放行/* $.ajax({ type: "POST", // get post 方法都是一样的 async: false, url: "http:localhost:8080/APmanager-webapp/api/simCard/table?id=1&serial=123", dataType: "json", success: function(json){ alert("success"); alert('票价: ' + json['flightHandler'][0] + ' 元,余票: ' + json['flightHandler'][1] + ' 张。'); }, error: function(){ alert('fail'); } }); */ // Java 后端/* @RequestMapping(value = { "/simCard/table" }, produces = "application/json; charset=UTF-8",method = RequestMethod.GET) @ResponseBody //flightHandler public String save1(@RequestParam(value = "id", required = false) String id, @RequestParam(value = "serial", required = false) String serial, HttpServletRequest request, HttpServletResponse response) { // 一般在请求拦截器中设置 response.setHeader("Access-Control-Allow-Origin","*"); response.setHeader("Access-Control-Allow-Methods","GET,POST"); //请求放行 JSONObject resultObj = new JSONObject(); JSONArray arr = new JSONArray(); arr.add("a"); arr.add("b"); arr.add("c"); resultObj.put("flightHandler", arr); System.out.println(id); System.out.println(serial); return resultObj.toString(); } */
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
3 : XHR2(XMLHttpRequest Level 2)
// 出处地址 http://www.cnblogs.com/bigbearbb/p/4274470.html
// 需要设置后端请求放行
//response.setHeader(“Access-Control-Allow-Origin”,”*”);
//response.setHeader(“Access-Control-Allow-Methods”,”GET,POST”);
//此对象相较于 level 1 版本的 增强
/* 1 可以获取服务器端的二进制数据。
2 可以友好的提交表单数据
3 可以上传文件(内置控制上传进度事件逻辑)
4 使用HTML表单来初始化一个FormData对象 */
4 : ajax jsonp 增强插件
https://github.com/congmo/jquery-jsonp
阅读全文
0 0
- ajax跨域请求的三种方式(js+java)
- ajax跨域请求的三种方式(js+java)
- ajax的三种方式请求
- jquery实现Ajax请求的三种方式
- js中ajax请求的两种方式
- ajax跨域请求的解决方式
- ajax实现跨域请求的三种方法
- jq ajax 和js ajax 两种方式请求数据
- Ajax之post请求跨站请求csrf_token发送处理de三种方式
- js Ajax跨域请求
- JS跨域请求的四种处理方式
- javascript/js的ajax请求方式:GET与POST
- $http——ajax跨域请求的angular方式
- (8)ajax发送put请求的两种方式
- Ajax的四种请求方式
- ajax的4种常用请求方式
- ajax请求的几种方式
- ajax请求的三种语法
- GitHub上受欢迎的Android UI Library
- 33.2 JDBC第三方连接池
- RadioGroup实现点击的RadioButton项变色
- 我的python学习之路(一)
- 前端-html
- ajax跨域请求的三种方式(js+java)
- 判断网络状态,成功吐司网络可用,没有网络弹框设置网络,判断网络可用请求数据,接口回调
- Android组件ListView
- Hadoop的datanode新建异常处理
- 【网络编程】IOCP模型与EPOLL模型的比较
- Docker报错 WARNING: IPv4 forwarding is disabled. Networking will not work.
- windows平台的markdown编辑器(notepad++)
- numpy中的matrix矩阵处理
- 关于win7 x64 连接oracle 客户端 VS2010调试 提示“ORA-12154: TNS: 无法解析指定的连接标识符 ” 原创 2013年04月13日 12:50:56 标签:Oracle