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参数介绍(1260)
 - Redis 在 Web 项目中的应用与实践(1198)
 - Java Web开发中web.xml文件详细介绍(1183)
 - JQuery Ajax访问Spring MVC接口解决跨域请求(1160)
 - java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlObject错误解决方法(1068)
 - Springboot 系列(一)Spring Boot 入门篇(1017)
 - MyBatis JdbcType详解(960)
 - 基于springboot的web项目最佳实践(888)
 - 微信公众号开发:获取用户发送消息并实现回复(Java)(859)
 
                    评论列表
                
                发表评论
文章分类
                
            文章归档
                
            阅读排行
                - 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(13262)
 - 2.Visual Studio 2017中安装visualSVN及使用详解(5197)
 - 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(4047)
 - 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(3364)
 - 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(3217)
 - 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2987)
 - 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2883)
 - 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2869)
 - 9.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2473)
 - 10. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2462)
 
    