javascript - 直接处理来自 AJAX 请求的数据

标签 javascript c# model-view-controller

在我的 .NET MVC Web 项目中,我使用此 javascript 在用户单击按钮时获取数据。

<script type="text/jscript">

        async function firstFunction() {
            var url = "/Home/CheckPrinter?printer=" + document.getElementById("printerName").value;
            $.get(url, null, function (data) {
                $("#msgPrinterName").html(data);
            });            
            var e = document.getElementById("ddlViewBy");
            var deviceType = e.options[e.selectedIndex].text;
            var url2 = "/Home/CheckIfValidIP?input=" + document.getElementById("ipAddress").value + "&type=" + deviceType;
            $.get(url2, null, function (data2) {
                $("#msgIPPort").html(data2);
            });            
            var url3 = "/Home/CheckPrintService?printer=" + document.getElementById("printerName").value;
            $.get(url3, null, function (data3) {
                $("#msgPrintService").html(data3);
            });
        };

        async function secondFunction() {
            await firstFunction();
            console.log($("#msgPrinterName").html());
            console.log($("#msgIPPort").html());
            console.log($("#msgPrintService").html());

            // now wait for firstFunction to finish...
            // do something else
        };
    </script>

返回的数据将显示在这里:

<div id="alerts">
                        <p id="msgPrinterName">
                        </p>
                        <br />
                        <p id="msgIPPort">
                        </p>
                        <br />
                        <p id="msgPrintService">
                        </p>
                        <p id="msgButton">
                        </p>
                    </div>

我遇到的问题是,当我单击按钮两次时,我只能获取内部 HTML,但我想直接获取数据。

enter image description here

最佳答案

您可以使用回调来解决此问题。

function firstFunction(callback) {
     ....
      $.get(url3, null, function (data3) {
            $("#msgPrintService").html(data3);
        }).done(function(){callback();});
}

function secondFunction() {

    firstFunction(function(){
        console.log($("#msgPrinterName").html());
        console.log($("#msgIPPort").html());
        console.log($("#msgPrintService").html());
    }

}

你也可以使用带有回调的ajax

关于javascript - 直接处理来自 AJAX 请求的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52592880/

相关文章:

javascript - 使用 javascript 从 html 背景图像到 "link"?

c# - 将 Windows 窗体背景颜色设置为十六进制值

c# - Automapper 5.0全局配置

php - 模型中的错误处理 (MVC)

javascript - 在计时器结束时显示消息一段时间

javascript - 在 AngularJS 中上传文件

javascript - 如果用户使用 onbefoerunload 导航,如何在 jexcel 单元格发生更改时发出警报

c# - 在 ASP.net Core 上使用 hangfire 和 structuremap 有什么更好的方法吗?

ios - 不确定如何在 iOS 应用程序中管理数据

java - 将 JSF 理解为 MVC 框架