2017-09-15 5 views
0

J'ai une méthode web dans un codebhind d'une page .aspx, mais lorsque j'essaie d'y accéder, elle ne déclenche pas la méthode web uniquement la page. Le statut de retour est 200, la page est appelée, mais la méthode est ignorée. Ce n'est pas grave si j'utilise name.aspx/GetData ou name.aspx/Anything, le résultat est 200 mais la méthode n'est pas déclenchée. J'ai testé les deux avec jquery Ajax et Postman. Obtenir et poster des tentatives. Y at-il quelque chose à modifier dans le web.config ou tout autre chose..NET Web Méthode n'est pas appelée à partir de javascript uniquement Page

$.ajax({ 
         url: '/adm/clientAccess.aspx/MyMethodInexistent', 
         data: {}, 
         type: 'POST', 
         contentType: 'application/x-www-form-urlencoded', 
         dataType: 'html', 
         success: function (data) { 
          //I GET HERE even if the method doesn't exist, and if it exists, it doesn't return data. 
          alert(1); 
         }, 
         error: function (response) { 
          alert(response.responseText); 
         } 
        } 
        ); 

enter image description here

enter image description here

enter image description here

+0

Si vous ne postez aucun code, vous en savez plus sur le problème que nous. Comment pourrions-nous vous aider? S'il vous plaît lire les directives sur la façon de poser une question: https://stackoverflow.com/help/mcve – JuanR

+0

Désolé, j'ai ajouté maintenant. – AlvaroCryptogram

+0

Quelle version de .NET utilisez-vous? il devrait être 'url: '/ adm/clientAccess.aspx/MyMethod',' pour appeler la méthode. Essayez d'ajouter un point d'arrêt dans la méthode pour voir si vous êtes en mesure de l'atteindre. – Niladri

Répondre

1

Pouvez-vous essayer avec le code ci-dessous, assurez-vous que le chemin à la méthode est corriger dans le url ci-dessous. Activez également les méthodes de page au niveau du scriptmanager si vous en utilisez une.

$.ajax({ 
    url: '/adm/clientAccess.aspx/MyMethod', 
    data: {}, 
    type: 'POST', 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    async: "true", 
    success: function (data) { 
     console.log(data); 
     //alert(1); 
    }, 
    error: function (response) { 
     alert(response.responseText); 
    } 
} 
); 
+0

Salut. J'ai essayé de faire cela, en ajoutant le scriptManager avec EnablePageMethods, mais le résultat est le même, il retourne la page entière, il ne déclenche pas la méthode, et je peux toujours appeler une méthode existante. – AlvaroCryptogram

+0

Wow, bonne nouvelle, cela a fonctionné avec contentType: "application/json; charset = utf-8 ". C'était une combinaison de tout. Merci beaucoup! – AlvaroCryptogram

1

devez activer les méthodes de page en utilisant l'élément ScriptManager:

<asp:ScriptManager ID="scm" runat="server" EnablePageMethods="true"/> 
+0

J'ai aussi essayé, mais cela n'a pas fonctionné. Merci. – AlvaroCryptogram