ASP.NET使用Jquery/AAJAX执行WebMethod

ASP.NET execute WebMethod with Jquery/AJAX

本文关键字:AAJAX 执行 WebMethod Jquery NET 使用 ASP      更新时间:2023-09-26

我有一个WebMethod,它将执行一些DB搜索并在一些HTML模板中返回数据。我需要使用jquery来执行这个方法来填充网站的一个区域,但问题是我的网站URL/URI是动态的。

我的URL是http://site/school-name/homeschool-name将始终更改以指示我正在访问的学校。

到目前为止,我已经完成了:

$.ajax({
    type: "POST",
    url: "/Default.aspx/BuscaEquipe",
    data: { 'pIndex': pIndex, 'pLimite': 4, 'pUnidadeCE': codigoEmitente },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(response) {
        alert(response.d);
    },
    failure: function(response) {
        alert(response.d);
    }
});

和WebMethod:

public static string BuscaEquipe(int pIndex, int pLimite, int pUnidadeCE)
{
    var objEquipe = new Equipe { EquipeUnidadeCE = pUnidadeCE, EquipeAtivo = 1 };
    var CaminhoImagem = Configuracoes.CaminhoVirtual + "Controles/Redimensiona.ashx?img=" + Configuracoes.CaminhoVirtual + "images/equipe/" + pUnidadeCE + "/";
    if (!objEquipe.Listar(objEquipe)) return "";
    var depoimentos = objEquipe.lstEquipe.Skip(pIndex).Take(pLimite);
    var objJson = new JavaScriptSerializer().Serialize(depoimentos.Aggregate("", (current, equipe) =>
            current + ("<div class='col-lg-3 col-md-3 col-sm-3'><img src='" + CaminhoImagem + equipe.EquipeImagem + "&w=400&h=400' alt='" + equipe.EquipeNome + "' class='img-circle img_perfil'><div class='nome_perfil text-center'>" + equipe.EquipeNome + "</div></div>")));
    return objJson;
}

这样使用我会得到一个401未授权,如果我尝试使用我的完整URL http://site/school-name/Default.aspx/BuscaEquipe,我会得到404。

附言:我已经在另一个项目中使用了同样的方法,效果很好,但我不知道这个项目出了什么问题,我认为这可能与URl有关,但我不能确定。

问题出在您的URL 上

使用ResolveClientUrl()方法

<%= ResolveUrl("~/Default.aspx/BuscaEquipe") %>

在您的静态服务器函数之前,您必须具有[WebMethod]属性

[WebMethod]
public static string BuscaEquipe(int pIndex, int pLimite, int pUnidadeCE)
{
   //Code
}

您的数据:

var requestData=JSON.stringify({pIndex:pIndex,pLimite:4,pUnidadeCE:codigoEmittee})

然后

data:requestData