从端点获取图像

时间:2017-02-18 23:38:39

标签: javascript jquery asp.net

我使用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>

1 个答案:

答案 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);
            }
        });

这可确保仅在从端点检索结果后才会发出警报。