ajax 跨域访问
来源:互联网 发布:linux gdb调试工具 编辑:程序博客网 时间:2024/06/05 05:48
之前一直只知道有跨域这一说,但并没有在项目中实战过。就在昨日有一个小需求就需要用到跨域。因此将实战的结果记录下。
跨域原理:ajax不能请求非当前服务之外的服务。
具体步骤
1:引入jquery
2:前端请求代码
$.ajax({type:"POST",dataType:"jsonp",cache:false,jsonp: "callbackparam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)jsonpCallback:"success_jsonpCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名data:{"keyword":keyword,"entry":20},url:"http://21.179.197.101:84/tyjs/searchFirst2.do",success:function(resultData){alert(resultData);}});
3:后端接收代码
说明
1:参数callbackparam就是前端定义的参数名,这是约定的参数名哦
2:然后通过参数名callbackparam获取到的值就是 前端定义的 jsonpCallback值
3:后端响应数据格式: 参数名callbackparam的值(要响应的数据格式,也就是前端要接收的数据格式)
4:后端响应格式就要设置为text/plain非json了哦。前端可以写json,会自动转换
@ResponseBody @RequestMapping("/searchFirst2") public void searchFirst2(String callbackparam, SearchView sv, Paging<Info> paging, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/plain;charset=utf-8"); String keyword = sensitiveWordUtlis.filterInfo2(sv.getKeyword()); sv.setKeyword(keyword); if (StringUtils.isNotEmpty(keyword)) { searchService.count(sv.getKeyword()); try { searchService.searchFirst(paging, sv); } catch (Exception e) { logger.error(e); } } String jsonData = JsonMyUtil.object2json(paging); jsonData = String.format("%s(%s)", callbackparam, jsonData); resp.getWriter().print(jsonData); resp.flushBuffer(); }
参考前辈的经验(里边有介绍到原理)
http://www.cnblogs.com/know/archive/2011/10/09/2204005.html
0 0
- Ajax跨域访问
- ajax跨域访问?
- Ajax跨域访问
- ajax跨域访问
- ajax跨域访问
- ajax跨域访问
- AJAX跨域访问
- AJAX跨域访问
- Ajax跨域访问
- ajax跨域访问
- Ajax跨域访问
- ajax跨域访问
- Ajax 跨域访问
- ajax跨域访问
- ajax跨域访问
- AJAX-跨域访问
- ajax 跨域访问
- ajax 跨域访问
- socket之bind
- 最佳的MongoDB客户端管理工具---MongoVUE
- zigbee 指定节点入网 函数ZDO_JoinIndicationCB()
- Linux 运维
- 数字货币开发专题(分布式和区块链技术)
- ajax 跨域访问
- 几种均值的比较和理解
- 二分贪心e
- CodeBlock无编辑器问题解决
- dubbo服务划分和接口设计原则(五)
- Chapter9——商店销售某一商品,每天公布统一的折扣(discount)。
- Linux系统下的ssh使用(依据个人经验总结)
- 简单PopuWindow实现
- oracle数据字典