Javascript 无法从$.ajax迭代json数组

Javascript 无法从$.ajax迭代json数组,javascript,jquery,json,ajax,razor,Javascript,Jquery,Json,Ajax,Razor,在将数据分配给视图页上的div时,我遇到了一些问题。 代码如下所示: $.ajax({ url: "/api/Flight/SearchFlight", type: "Post", data: $('form').serialize() + '&' + $.param({ 'TokenId': $("#pageInitCounter").val() }, true), success: function(data) { alert(data);

在将数据分配给视图页上的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,我可以在我的页面上完美地看到整个数据。 我得到的回复样本是一个巨大的数据,所以我发布了它的链接

现在我想遍历每一个数据,但无法做到。 例如:

那么错误是:

UncaughtTypeError:无法读取未定义的属性“ResponseStatus”


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

使用Json数据类型..我在这里写了一个示例

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

使用Json数据类型..我在这里编写了一个示例

$.ajax({
  dataType: "json",
  url: url,
  data: data,
  success: success
});

您将以字符串的形式返回响应,但尝试将其作为javascript对象进行操作

你可以做两件事中的一件

  • 告诉服务器您希望返回json数据
  • 接收到字符串响应后,将其解析为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对象进行操作

    你可以做两件事中的一件

  • 告诉服务器您希望返回json数据
  • 接收到字符串响应后,将其解析为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);
    
      });
    

    您可能将数据作为字符串而不是json对象获取。尝试向ajax请求添加数据类型:“json”。或者使用data=JSON.parse(数据)@Adder尝试了u所说的“$.ajax({url:/api/Flight/SearchFlight”),类型:“Post”,数据类型:“json”,`尝试了这个,但仍然是相同的错误,是的,我想我是以字符串的形式返回数据。您可能是以字符串的形式获取数据,而不是作为json对象。尝试将数据类型:“json”添加到ajax请求中。或者使用data=json.parse(data);@Adder尝试了您所说的`$.ajax({url:“/api/Flight/SearchFlight”,type:“Post”,dataType:“json”,`尝试了这个,但仍然是相同的错误,是的,你是对的,我想我正在以stringjustice json的形式返回数据。解析技巧完成了工作非常感谢你sir@jamiecjustice json。解析技巧完成了工作非常感谢你sir@Jamiec