ajax传递json数组对象
你创建json数据之后直接发送就好,会在发送之前自动序列化的,后台收到的是序列化之后的字符串,formData需要手动序列化。json不需要。至于用法你可以先看下原生的如何使用,创建xmhttp,设置header,异步发送,状态等待判断,接受reponseText。等你明白之后可以直接用jquery的ajax封装好的,使用方法请w3c。
返回的如果是jsonencode之后的数据,可以直接用下标访问。
关于struts2,使用jquery发送ajax请求,返回json字符串的问题
aysnc:false, 下面加一句 dataType:"json", 试一下。 你的配置文件没错,其实不用这么麻烦,JSONArray array = JSONArray.fromObject(smallTypes); System.out.println(array.toString()); this.result = array.toString(); 这三句代码不需要。 在action中,只要有get和set方法,值都能传到前台。
用java写个接口实现数据对接
application/x-www-form-urlencoded:
application/json:
通过上面例子发现,结构简单的时候formdata数据更简单,结构复杂的时候(array)JSON数据更简单。
题目问到Java接口,应该分三种情况。
如果是JSP等服务器端模板技术,再加上一些jQuery AJAX。
POST的时候,默认contentType都是application/x-www-form-urlencoded。可改成application/json,看自己。
如果用前端框架,Angular、React、Vue。
POST的时候,默认contentType都是application/json。建议用JSON,别改。JSON就是JS的一个子集,既方便JS解析,也方便人读。
Java服务器端对其他服务器端通信。
其实更建议用XML,特别是和第三方服务通信的时候。如果公司内部自己的几个Java服务通信,用JSON就好。
现在Java Web开发,最常见的是上面第2种情况。所以,当用Spring MVC的时候,建议用@RestController
如果用@Controller,需要这么写:
如果用@RestController,不需要写@ResponseBody,也不需要指定consumes和produces类型,默认都是application/json。可以简化成这样:
submitform方法的参数
ajaxForm()方法和submitForm()方法的参数
ajaxForm()方法和submitForm()方法都能接受0个或1个参数。当为单个参数时,该参数可以是一个回调函数,也可以是一个options对象,传递option对象,使它们拥有更多控制权;
(1)首先定义一个对象options,然后在里面设置参数,代码如下:
var options={
target: '#output1', //把服务器返回的内容放入id为output1的元素中
beforeSubmit: showRequest, //提交前的回调函数
success: showResponse , //提交成功的回调函数
url: url, //默认form的"action",如果申明,会覆盖
type:type, //默认是form的method('get'or'post'),如果申明,会覆盖
dataType: null, //'xml','script','json'(接收服务器返回的类型)
clearForm: true, //成功提交后,清除所有表单元素的值
resetForm: true, //成功提交后,重置所有表单元素的值
timeout:3000 //请求限制的时间,当大于三分钟,跳出请求
};
(2)定义完options对象之后,就把这个参数传给ajaForm()方法,代码如下:
$("#myform").ajaxForm(options);
或者,
$("#myform").submit(function(){
$(this).ajaxSubmit(options);
return false;
})
(3)beforeSubmit——提交前的回调函数
参数:formData为数组对象。在这里,使用$.param()方法把它转化为字符串,得到如下格式:name=lida&address=guanzhou
jqFrom是个JQuery对象,它封装表单元素
options就是options对象



还没有评论,来说两句吧...