无法从$ .ajax迭代json数组

时间:2016-05-23 07:55:21

标签: 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);
    $('#responsestatus').text(data.Response);
    $('#divResult').html(data);
  });

在这里,正如您所看到的,我可以在警告框中看到整个数据。另外,我已将整个数据分配给div,我可以在我的页面上完整地看到整个数据。 我得到的样本响应是一个巨大的数据,所以我发布了它的链接http://pastebin.com/eEE72ySk

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

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

然后错误是:

  

UncaughtTypeError:无法读取未定义

的属性'ResponseStatus'

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

2 个答案:

答案 0 :(得分:2)

使用Json datatype..i在这里写了一个示例..

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

答案 1 :(得分:2)

您将回复作为字符串,但尝试对其进行操作,就像它是一个javascript对象。

你可以做两件事之一

  1. 告诉服务器您期待json数据回复
  2. 收到json后,将字符串响应解析为。
  3. 第一个应该像在请求上设置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);
    
      });