我在将数据分配给 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 对象一样对其进行操作。
您可以做以下两件事之一
- 告诉服务器您需要返回 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 - 无法从 $.ajax 迭代 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37385525/