AJAX中常见的一些问题

2018-03-01  本文已影响0人  月影风煞

.ajax contentType :设置你发送给服务器的格式.ajax dataType :接收到服务器数据的格式

contentType :application/x-www-form-urlencoded(默认),数据格式是键值对的形式key=fdsa&lang=zh,一般是blob,file和String三种
GET请求是把数据直接放在url中
POST请求是把数据放在请求体中

contentType: 'application/json':类型是text文本,解决一些复杂的数据,比如带嵌套类型JSON。

1.带有嵌套数组的数据传输,如保存方法

默认格式传输格数据:

data:{id:'1010',array:JSON.stringify(array)}
后台接受时使用字符串类型的数据接收arrayString,
再进行转换
List<Map> dataList = JSON.parseArray(arrayString, Map.class);
// com.alibaba.fastjson.JSON;
或者
 List divCodes= JSONArray.parseArray(request.getParameter("divCodes"));

JSON格式传输数据:

data : JSON.stringify(data),
contentType : 'application/json',
dataType : 'json',

用 JSON.stringify序列化要发送的数据,后台controller接收格式:
 @RequestBody Object obj 参数接收传过来的字符串
LinkedHashMap temp = (LinkedHashMap) obj;//把字符串对象强转为map集合,就可以取数了
 List<Map<String, Object>> itemList = (List<Map<String, Object>>) temp.get("itemDataTable");

2.JSON 和 JS 对象互转

要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:
var json = JSON.stringify({a: 'Hello', b: 'World'}); //结果是 '{"a": "Hello", "b": "World"}'
要实现从 JSON 转换为对象,使用 JSON.parse() 方法:
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //结果是 {a: 'Hello', b: 'World'}

上一篇 下一篇

猜你喜欢

热点阅读