使用jQuery进行ajax的引用,实现交互
ajax代码:
$.ajax({
type: "post",//传输数据方式
url: "/getAns",//后端提供接口
dataType: "json",//返回数据类型
contentType: "application/json",//传输数据的类型
async: false, //同步请求,默认为true,异步请求
cache: false,//获取数据途径为不读取缓存,true为读取缓存
traditional: true,/*默认情况下traditional为false,即jquery会深度序列化参数对象,以适应如PHP和Ruby on Rails框架,但servelt api无法处理,我们可以通过设置traditional 为true阻止深度序列化然后序列化结果如下:
eg:
records: ["123", "456", "789"]
/* => records=123&p=456&p=789
随即,我们就可以在后台通过request.getParameterValues()来获取参数的值数组
*/
data: JSON.stringify({
choiceAnswers: objToArr(arr),
essayAnswers: warr
}),//向后端传输的数据函数
success: function(data) {//data为前端获取到的数据,我们可以对其处理
var textForm = $("#danxuan");
textForm.html("");
var str = '<h3>一、选择题</h3><span class="tishi">(本小题每题5分,总分30。)</span>';
$.each(data['result'], function(index, obj) {
str += '<div class="co">'
str += '<h4 onselectstart="return false" id="' + obj['choiceQstId'] + '">' + '<strong>' + obj['choiceQstId'] + '</strong>' + ' ' + '.' + ' ' + obj['choiceQstExp'] + '</h4>'
str += '<input type="radio" name="optQuestion' + index + '" id="A' + index + '" value="A"><label for="A' + index + '">A.' + obj['a'] + '</label></br>'
str += '<input type="radio" name="optQuestion' + index + '" id="B' + index + '" value="B"><label for="B' + index + '">B.' + obj['b'] + '</label></br>'
if (obj['c']) { str += '<input type="radio" name="optQuestion' + index + '" id="C' + index + '" value="C"><label for="C' + index + '">C.' + obj['c'] + '</label></br>' }
if (obj['d']) { str += '<input type="radio" name="optQuestion' + index + '" id="D' + index + '" value="D"><label for="D' + index + '">D.' + obj['d'] + '</label></br>' }
str += '</div>'
})
textForm.html(str);
textForm.append();
},//后端向前端传输数据成功时执行函数,一般此时状态码为200
error: function() {
alert("请求选择题失败");
},//后端向前端传输数据失败时执行函数
})
部分HTML代码
div id="danxuan">
</div>
说明:JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。语法如下:
JSON.stringify(value, replacer, space)
参数说明:
value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。
replacer:
可选。用于转换结果的函数或数组。
如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。
如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。
space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。
返回值:
返回包含 JSON 文本的字符串。