JQuery Ajax访问Spring MVC接口解决跨域请求
Jquery ajax默认访问Spring MVC接口如果接口返回Json数据就会存在跨域问题(比如www.aaa.com网站需要调用www.bbb.com服务器接口,两个程序不在同一服务器)不能被直接调用,解决方法只需将接口返回json数据改为jsonp即可。
后台代码如:
@RequestMapping(method = RequestMethod.GET, value = "getProjectStatusList", produces = "text/html;charset=UTF-8") @ResponseBody public String getProjectStatusList(HttpServletRequest request,HttpServletResponse response) { Map<String, Object> map = new HashMap<String, Object>(); try { String callback = request.getParameter("callback"); // System.out.println("token:"+request.getHeader("token")); List<Map<String, Object>> list = applyBaseService.getApplyBaseList(map); map.put("status", "success"); map.put("data", list); JSONObject json = new JSONObject(); json.put(Oa.RETURN_MESSAGE, Oa.OPERATE_SUCCESS); json.put(Oa.RETURN_TIME, DateUtil.convertDateToString(new Date())); json.put(Oa.RETURN_CODE, "123131"); json.put(Oa.RETURN_DATA, list); ObjectMapper mapper = new ObjectMapper(); // 这个拼接是重点。。。 String result = callback + "(" + mapper.writeValueAsString(json)+ ")"; System.out.println(result); // String result = mapper.writeValueAsString(map); return result; } catch (Exception e) { System.out.println("AAAAA:"+e.getMessage()); JSONObject json = new JSONObject(); json.put("status", "fail"); json.put("data", e.getMessage()); return json.toString(); } }
2、前端Jquery Ajax请求代码如下:
<script> var api = "http://localhost:8081/AttorWeb/Index/getProjectStatusList"; var name = $("#firstForm input[name='name']").val(); $(function() { $('#ddddd').on('click', function() { $.ajax({ type: 'post', url: api, async: false, dataType: 'jsonp', jsonpCallback: 'callback', data: { 'name': name }, success: function(json) { alert(json.message); alert(json.code); alert(json.data[0].office_name); if(success) success(res); //TODO alert(json.weatherinfo.city); }, error: function(XMLHttpRequest, textStatus, errorThrown) { //TODO } }); }); }); </script>
猜您可能还喜欢
- Spring web.xml中contextConfigLocation参数介绍(1101)
- Java Web开发中web.xml文件详细介绍(1095)
- JQuery Ajax访问Spring MVC接口解决跨域请求(1085)
- Redis 在 Web 项目中的应用与实践(1065)
- java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject错误解决方法(977)
- Springboot 系列(一)Spring Boot 入门篇(947)
- MyBatis JdbcType详解(867)
- 基于springboot的web项目最佳实践(814)
- 微信公众号开发:获取用户发送消息并实现回复(Java)(793)
评论列表
发表评论
文章分类
文章归档
阅读排行
- 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(12642)
- 2.Visual Studio 2017中安装visualSVN及使用详解(4838)
- 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(3701)
- 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(2926)
- 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(2791)
- 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2633)
- 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2577)
- 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2541)
- 9. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2191)
- 10.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2158)