簡體   English   中英

ASP.NET使用Jquery / AJAX執行WebMethod

[英]ASP.NET execute WebMethod with Jquery/AJAX

我有一個WebMethod,它將執行一些數據庫搜索並以某些HTML模板返回其數據。 我需要使用jquery執行此方法來填充網站的某個區域,但是問題是我的網站URL / URI是動態的。

我的網址是http://site/school-name/home school-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。

PS:我已經在另一個項目中使用了相同的方法,並且效果很好,但是我無法弄清楚這個問題出在哪里,我認為它可能與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:codigoEmitente})

接着

data:requestData

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM