使用 AJAX 从 VB 文件请求 webmethod 信息时出现问题

Posted

技术标签:

【中文标题】使用 AJAX 从 VB 文件请求 webmethod 信息时出现问题【英文标题】:Problem while using AJAX requesting webmethod info from VB file 【发布时间】:2021-10-16 04:39:10 【问题描述】:

我一直在尝试从 javascript 为我正在开发的网站调用一个 VB.NET 函数,并发现了 AJAX 并开始尝试使用它。

(供参考,我的目标框架是4.6.1。)

以下是我的 VB.NET 代码的 sn-p,其中 PopulateDetailSection() 返回一个字符串,该字符串应该是 div 中的文本,但我的断点从未命中此函数。

System.Web.Services.WebMethod(EnableSession:=True, BufferResponse:=False)
    Protected Shared Function PopulateDetail() As htmlGenericControl

        Return PopulateDetailSection()
    End Function

关于 AJAX 调用:

jQuery.ajax(
                url: "frmActiveTrackingG.aspx/PopulateDetail",
                type: "GET",
                //contentType: "application/json: charset=utf-8",
                dataType:"html",
                success: function (data) 
                    alert(data);
                
            );

我尝试过提醒几件事,但它一直返回未定义,除非我提醒数据似乎返回以标题开头的 aspx 文件。

我通常不会在这里问问题,但我真的很难过。

【问题讨论】:

代码应该在一个 .asmx.vb 文件中 - 通过向项目中添加一个类型为“Web 服务”的新项目来创建一个。这将阻止它完成与 .aspx 项目一起使用的所有脚手架,例如标题。 【参考方案1】:

您的 JavaScript 存在一些问题。如此处所述:https://***.com/a/5332290/428010 您需要在网页/方法上发布。

jQuery.ajax(
                url: "frmActiveTrackingG.aspx/PopulateDetail",
                type: "POST",
                contentType: "application/json: charset=utf-8",
                dataType: "json",
                success: function (data) 
                    alert(data);
                
            );

在 VB 方面,该方法需要 public 而不是 protected

【讨论】:

以上是关于使用 AJAX 从 VB 文件请求 webmethod 信息时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 asp.net(vb) 中自定义 ajax 文件上传吗?

从 Javascript、Ajax、IE 访问二进制数据:可以从 Javascript(不是 VB)读取 responseBody 吗?

Chrome:如何使用Chrome的控制台查看Ajax的返回结果呢?求解

jQuery ajax 函数调用 vb 文件中的代码

如何通过 jQuery AJAX 从使用 OAuth 1.0 身份验证的 Upwork API 请求 JSONP 文件?

从ajax请求下载laravel pdf文件(laravel 5)