2009-12-17 6 views
2

J'utilise ASP.net 3.5. Un appel à une méthode Web à l'aide de JQuery renvoie des données JSON valides. Cependant, lorsque j'appelle la même méthode Web pour remplir une table html en utilisant le plugin JQuery datatables.net, je récupère tout le HTML de la page.asp.net jquery datatables.net webmethod

**WebMethod:** 
<WebMethod()> _ 
     Public Shared Function GetData() As String 
     Dim a As String = "{""aaData"": [['Trident','Internet Explorer 4.0']]}" 
     Return a 
    End Function 


**Successful JQuery call:** 
$("#Result").click(function() { 
    $.ajax({ 
     type: "POST", 
     url: "Default2.aspx/GetData", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
     // Replace the div's content with the page method's return. 
     $("#Result").text(msg.d); 

     } 
    }); 
    }); 
}); 

Unsuccessful appel JQuery:

$(document).ready(function() { 
    $('#example').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "Default2.aspx/GetDate", 
     "fnServerData": function(sSource, aoData, fnCallback) { 
     $.ajax({ 
     "dataType": 'json', 
     "url": sSource, 
     "data": aoData, 
     "success": fnCallback 
     }); 
     } 
    }); 
}); 

Toute réflexion sur la raison pour laquelle le second appel retourne html? J'ai essayé d'ajouter contentType: "application/json; charset = utf-8", au second appel ajax. J'ai une erreur

+0

Désolé, le "Default2.aspx/GetDate" est une faute de frappe. Dans les deux cas, "Default2.aspx/GetData" est appelé. Le résultat de l'appel infructueux est toujours la page entière – klork

Répondre

0

contentType: application/json va être nécessaire. Quelle est l'erreur que vous obtenez en fournissant cela?

Il existe peut-être une erreur de codage; voir How to set encoding in .getJSON JQuery

0

Peut-être appelez-vous une méthode qui n'existe pas, peut-être qu'une page d'erreur est en réponse. Mieux vaut vérifier ce qui arrive dans votre réponse.

"sAjaxSource": "Default2.aspx/GetDate", 

En appel avec succès, vous utilisez la méthode GetData

url: "Default2.aspx/GetData", 

En appel infructueux vous appelez la méthode GetDate.

+0

Désolé, le "Default2.aspx/GetDate" est une faute de frappe. Dans les deux cas, "Default2.aspx/GetData" est appelé. Le résultat de l'appel infructueux est toujours la page entière. – klork

+0

pouvez-vous fournir un échantillon ou quelque chose de plus pour trouver le problème .. – Krunal

Questions connexes