我使用ajax从服务中获取一组图像名称。 当我检查data.d时,数组就在那里。但是,我似乎无法将其分配给我的变量,因为当我提醒它时,它表示未定义。
就访问返回数组而言,data.d
是什么呢?为什么.d
?
有更好的方法吗?我将采用一系列图像名称,并在程序中稍后循环显示。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server"></asp:GridView>
</div>
</form>
<script>
$(function () {
var aryImageNames;
$.ajax({
type: "POST",
url: "Default.aspx/GetImages",
contentType: "application/json; charset=utf-8",
data: "{}",
success: function (data) {
aryImageNames = data.d;
}
});
alert(aryImageNames);
});
</script>
</body>
</html>
答案 0 :(得分:0)
我怀疑.d
只是你的端点构建方式的结果。它不是jQuery / JavaScript标准。
至于警告undefined
时您可能会看到aryImageNames
的原因,我怀疑这可能是由于JavaScript的异步性质造成的。换句话说,在调用alert(aryImageNames)
之前,您的AJAX调用可能无法完成。
您必须确保在完成后调用处理图像的任何代码。例如,如果您想提醒图像名称,您需要将其置于成功回调中,如下所示:
$.ajax({
type: "POST",
url: "Default.aspx/GetImages",
contentType: "application/json; charset=utf-8",
data: "{}",
success: function (data) {
alert(data.d);
}
});
这可确保仅在从端点检索结果后才会发出警报。