前端与后端异步传递json数据

前端传递json数据给后端服务器

 $.ajax({
                        url: "http://127.0.0.1:8080/web1/find",
                        type: "POST",
                        contentType:"application/json;charset=utf-8",
                        crossDomain: true,
                        data: {"BH":val},
                        dataType:"json",
                        success:function(data){
                            console.log(data);
                            $.each(data, function(k,value){
                                var tr = $("<tr></tr>");
                                for(var i=0;i< key.length; i++){
                                    var index = key[i];
                                    // json不能用 value.index
                                    console.log(value);
                                    // 对传递的数据进行json处理  传递的数据实质为json字符串 要进行json的处理(转为json对象)
                                    var td = $("<td>"+ value[index]+ "</td>");
                                    tr.append(td);
                                }
                                $("tbody").append(tr);
                            });

后端服务器接受前端发送的json数据,此数据为key=value的形式存储,加入只是简单的json数据我们可以自己分割字符串"="获得他的value,若传递的是对象,或者数组需要用第三方插件fastjson 将其转为java可以使用的对象

//	produces = {"application/json;charset=utf-8","text/html;charset=utf-8"} 与requestbody连用
	@RequestMapping(value="/find", 	produces = {"application/json;charset=utf-8","text/html;charset=utf-8"}) 
	public String find(@RequestBody String BH){
		System.out.println("输出请求参数");
		System.out.println(BH);
//		JSON数据从前端转发到后端被接受  后端要加requesbody注解接受json
//		json数据接受后 为key=value的方式存储  所以我们要分割  遇到复杂的json需要用fastjson转成java	
		
		//json字符串要解析  因为其是字符串为key=value的方式分割  ,简单的自己分割 复杂的交割fastjson
		
		List<XiangMu> list = xiangMuService.findByCondition(BH.split("=")[1]);
		
//		将java对象变成json字符串传递给前端
		String jsonString = JSON.toJSONString(list);
		 
		System.out.println(jsonString);
		return  jsonString;
	}

后端传递的json数据传给前端后,前端处理(js对象与json一样)

后端传递的数据乱码的问题 在requestmapping注解加入属性就行了

@RequestMapping(value="/find", 	produces = {"application/json;charset=utf-8","text/html;charset=utf-8"})

注意跨域问题
当使用ajax发送请求时,由于域名不同那个会造成无法请求,在web.xml文件配置

<filter>
		<filter-name>CORS</filter-name>
		<filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
		<init-param>
			<param-name>cors.allowOrigin</param-name><!--这个标签是关键, *代表所有源都能访问 -->
			<param-value>*</param-value>
		</init-param>
		<init-param>
			<param-name>cors.supportedMethods</param-name>
			<param-value>GET, POST, HEAD, PUT, DELETE</param-value>
		</init-param>
		<init-param>
			<param-name>cors.supportedHeaders</param-name>
			<param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
		</init-param>
		<init-param>
			<param-name>cors.exposedHeaders</param-name>
			<param-value>Set-Cookie</param-value>
		</init-param>
		<init-param>
			<param-name>cors.supportsCredentials</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>

	<filter-mapping>
		<filter-name>CORS</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值