【问题标题】:Web Method not called in ajax aspx web formWeb 方法未在 ajax aspx Web 表单中调用
【发布时间】:2020-11-23 11:37:23
【问题描述】:

这是我的 ajax 请求:

$("#<% =txtDiagnosisData.ClientID %>").autocomplete({                
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        url: 'EMR.aspx/SearchDiagnosis',
                        contentType: "application/json;charset=utf-8",
                        dataType: "json",
                        success: function (data) {
                          //  response(data.d);
                            alert("success");
                        },
                        error: function (result) {
                            alert("error");
                        }
                    });
                }
            });

这是我的功能:

[WebMethod]
public static List<string> SearchDiagnosis()
{
    return new DataAccess().GetDiagnosis();
}

我的方法不是从 ajax 调用的,它总是进入错误部分 如何解决?

【问题讨论】:

  • 请注意,如果您正在使用会话,那么这可能会中断。使用[WebMethod(enableSession: true)] 之类的属性,看看它是否有效。并把你得到的错误。

标签: asp.net .net webmethod jquery-ajax


【解决方案1】:

您可能会直接或间接在 Web 方法中使用 Session 变量。

函数DataAccess().GetDiagnosis();中的某处

在这种情况下,使用 [WebMethod(enableSession: true)] 之类的属性来代替 [WebMethod] 也尝试通过正确实现错误来获取错误,如下所示

 error: function (jqXHR, textStatus, errorThrown) {
              if (jqXHR.status == 500) {
                  alert('Internal error: ' + jqXHR.responseText);
              } else {
                  alert('Unexpected error.');
              }
          }

Ref : jQuery ajax error function 看看你到底遇到了什么错误。

【讨论】:

  • 它现在显示意外错误,但我的网络方法仍然没有调用
  • @SubrataP 你能在你的问题中发布错误吗?将 jqXHR.responseText 的值和所有其他参数也放入其中。也尝试直接从浏览器调用该方法。或者使用邮递员创建请求。
  • 启用后也不起作用,错误是:意外错误
  • 我是从邮递员那里调用的,状态是 200 Ok,但是它返回一个 html
猜你喜欢
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-26
  • 2012-06-22
  • 2014-07-31
  • 2015-08-24
相关资源
最近更新 更多