javascript - 无法从 $.ajax 迭代 json 数组

标签 javascript jquery json ajax razor

我在将数据分配给 View 页面上的 div 时遇到一些问题。 代码是这样的:

$.ajax({
  url: "/api/Flight/SearchFlight",
  type: "Post",
  data: $('form').serialize() + '&' + $.param({
    'TokenId': $("#pageInitCounter").val()
  }, true),
  success: function(data) {
    alert(data);
    $('#responsestatus').text(data.Response);
    $('#divResult').html(data);
  });

在这里,如您所见,我可以在警报框中看到全部数据。另外,我已将整个数据分配给 div,我可以在页面上完美地看到整个数据。 我收到的示例响应是一个巨大的数据,因此我发布了它的链接 http://pastebin.com/eEE72ySk

现在我想迭代每一个数据,但无法做到。 示例:

 $('#responsestatus').text(data.Response.ResponseStatus); 

那么错误是:

UncaughtTypeError:Cannot read property 'ResponseStatus' of undefined

请有人告诉我这里出了什么问题。为什么我不能迭代响应中的数据

最佳答案

您正在以字符串形式返回响应,但尝试像处理 JavaScript 对象一样对其进行操作。

您可以做以下两件事之一

  1. 告诉服务器您需要返回 json 数据
  2. 收到字符串响应后将其解析为json。
<小时/>

第一个应该像在请求上设置 datatype 属性一样简单

$.ajax({
  url: "/api/Flight/SearchFlight",
  type: "Post",
  datatype: 'json',
  data: $('form').serialize() + '&' + $.param({
    'TokenId': $("#pageInitCounter").val()
  }, true),
  success: function(data) {
    $('#responsestatus').text(data.Response.ResponseStatus);
  });

第二个涉及在使用响应之前对其进行解析

$.ajax({
  url: "/api/Flight/SearchFlight",
  type: "Post",
  data: $('form').serialize() + '&' + $.param({
    'TokenId': $("#pageInitCounter").val()
  }, true),
  success: function(data) {
    var result = JSON.parse(data);
    $('#responsestatus').text(result.Response.ResponseStatus);

  });

关于javascript - 无法从 $.ajax 迭代 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385525/

相关文章:

php - 不确定如何处理 json php mysql 集成

javascript - 有没有办法在终端中本地运行 CoffeeScript?

jquery - jquery 中点值的尾随零计算

javascript - 遍历 jquery json

c# - 反序列化字符串化的 JSON 对象

jquery - 绑定(bind) JSON 数组以进行选择

javascript - 使用 jquery mouseover 在 javascript 中递归过多

javascript - 我可以将可拖动对象的助手而不是原始项目放入可排序对象中吗?

javascript - 垂直居中高度未知的div

javascript - 刷新页面添加新的随机参数