jquery-无法从我通过ajax调用获得的对象类型响应中检索数据
Posted
技术标签:
【中文标题】jquery-无法从我通过ajax调用获得的对象类型响应中检索数据【英文标题】:jquery- can not retrieve data from object type response which I get through ajax call 【发布时间】:2021-08-07 05:02:35 【问题描述】:我有一个表格页面。我正在尝试通过 ajax 调用从 api 获取数据并检索该数据并尝试将其显示在页面的表格中。 所以,我需要 key 和 value 两者。我想将键设置为列名(列的标题)和行的值。
但我无法从响应中检索我的数据,也无法将其绑定到 html 页面中。
这是我的控制器:
public ResponseEntity<Object> findPaginated(
@RequestParam("page") int page, @RequestParam("size") int size) throws NotFoundException
JsonParser parser = new BasicJsonParser();
HttpHeaders headers = new HttpHeaders();
ApiResponse response = new ApiResponse(false);
Page<EmployeeDesignation> resultPage = designationService.findPaginated(page, size);
List<EmployeeDesignation> parseList = resultPage.getContent();
response.setSuccess(parser.parseList(String.valueOf(parseList)));
headers.add("totalelement", String.valueOf(resultPage.getTotalElements()));
headers.add("totalpages", String.valueOf(resultPage.getTotalPages()));
System.err.println ( " in controller ");
return ResponseEntity.ok()
.headers(headers)
.body(response);
这是我的 ajax 调用格式(.js 文件):
function getList()
$http(
url: "/api/designation/designations/get?",
method: 'GET',
params: page: 2, size: 2
).then(function successCallback(response)
let info = Object.values(response.data.data);
let check = Object.values(info);
console.log("keys::::" + check);
getArray(check);
, function errorCallback(data) );;
function getArray($products)
jQuery($products).each(function(i, obj)
jQuery('div#check').append(obj.name + '::::::contains ::::::' +obj.designationRefId);
);
但是当我在 page 上附加数据时,它显示未定义。
这是我的 .json 格式文件:
"success": true,
"message": null,
"data": [
"EmployeeDesignationid=75928ab9-7c97-442d-b777-dc32ca9ef49d, version=0, refId=0, designationRefCode='2', name='programmer'",
"EmployeeDesignationid=57305c1f-bca0-4a56-ba19-5784c4461f5b, version=0, refId=0, designationRefCode='2', name='designer'"
]
以下输出:console.log(JSON.stringyfy(response)):
"data":"success":true,"message":null,"data":["EmployeeDesignationid=75928ab9-7c97-442d-b777-dc32ca9ef49d, version=0, refId=0, designationRefCode='2', name='programmer'","EmployeeDesignationid=57305c1f-bca0-4a56-ba19-5784c4461f5b, version=0, refId=0, designationRefCode='2', name='designer'"],"status":200,"config":"method":"GET","transformRequest":[null],"transformResponse":[null],"jsonpCallbackParam":"callback","url":"/api/designation/designations/get?","params":"page":2,"size":2,"headers":"Accept":"application/json, text/plain, */*","statusText":"","xhrStatus":"complete"
我该如何解决这个问题?我怎样才能将这些数据绑定到表上???
【问题讨论】:
嗨,你能显示response
的输出吗?
我给出的json格式——这是java API的输出。现在我给你输出console.log(JSON.stringify(response)),请看编辑版本@Swati
检查你得到的 json 是否是有效的 json 。另外,在访问它们之前,请使用JSON.parse
解析从后端接收的 json。
【参考方案1】:
似乎将列表转换为字符串正在生成这种格式。
你可以尝试这两种方法中的任何一种,
-
在显示数据期间,从每个数组元素中删除“EmployeeDesignation”。
或者,
-
制作您自己的 JSON 对象,无需转换为字符串。
【讨论】:
以上是关于jquery-无法从我通过ajax调用获得的对象类型响应中检索数据的主要内容,如果未能解决你的问题,请参考以下文章
jquery .ajax函数与Laravel-4无法正常工作
使用 Jsonp 进行 $.ajax 调用后无法在 Jquery 中检索数据