如何在文档中请求包含ajax功能的网页.准备好了,需要完成它

本文关键字:准备好了 网页 功能 文档 请求 ajax 包含 | 更新日期: 2023-09-27 18:06:10

我在网站上有一个控制器,它获得documentId,生成Html基础数据库,最后生成PDF文档。这些任务通过ajax函数在我的控制器视图中执行(在document.ready中)。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <div>
        <input type="hidden" id="docId" value="@ViewBag.DocId" />
    </div>
</body>
</html>
<script src="~/Content/Scripts/jquery-2.0.2.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        var docId = $("#docId").val();
        if (!docId === "") {
            $.ajax({
                type: 'GET',
                url: "/AccountDoc/DocumentHtmlReport",
                data: { 'docId': docId },
                dataType: "html",
                success: function (result) {
                        $.ajax({
                            type: 'POST',
                            url: "/Helper/CreatePDFDoc",
                            data: { 'srcHtml': result, 'docId': docId },
                            success: function () {
                               
                            },
                            error: function () {
                            }
                        });
                }
            });
        }
    });
</script>

我在浏览器中测试它"http://beta.mysite.com/AccountDosc/GeneratePdfDoc?docId=67"并且工作正常

现在我需要从c# windows应用程序调用这个控制器。我使用这些代码,它返回200 OK给我:

 var request = (HttpWebRequest)WebRequest.Create($"http://beta.mysite.com/AccountDosc/GeneratePdfDoc?docId=={docId}");
 var response = request.GetResponse();
 response.Close();

但不生成Pdf文件。我认为WebRequest不要等到ajax全部完成才完成。我该如何处理这个问题?

如何在文档中请求包含ajax功能的网页.准备好了,需要完成它

似乎你正在调用错误的控制器,在您的浏览器中,您正在调用"http://beta.mysite.com/AccountDosc/GeneratePdfDoc?docId=67"和在您的代码"/Helper/CreatePDFDoc"

我会这样做:

  1. 调用http://yoursite.com/AccountDosc/GeneratePdfDoc?docId=67并获得响应结果。这样就可以生成pdf文件了。
  2. 调用http://yoursite.com/Helper/CreatePDFDoc?docId=67&srcHtml=htmlContent在服务器上生成pdf。

我认为,有更好的方法来做到这一点,也许一个rest web api或WFC服务,但如果你有一些限制,它可以工作。基本上你需要在windows应用程序的页面上一个接一个地运行你在jQuery脚本中编写的步骤,因为web请求不会运行任何javascript