2011-08-15 7 views
0

Voici mon codeRéponse JSON retour appel ajax 200 ok

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript" src="<%= ResolveUrl("Scripts/jquery-1.3.2.min.js") %>"></script> 
</head> 

<body> 
    <form id="form1" runat="server"> 
    <div> 
    <input type="button" id="btn" value= "call web service" onclick="callwebservice()" /> 
    </div> 
    </form> 
</body> 
</html> 
<script type="text/javascript" language="javascript"> 
function AjaxFailed(result) { 
      alert('call stastus:' + result.status + ' ' + result.statusText); 
      alert('responsetest"'+result.responseText); 
      alert('errorthrown' + result.errorThrown); 

     } 
     function callwebservice() { 
      $.ajax(
        { 
         type: "POST", 
         url: "default.aspx/LoginFromFacebook", 
         data: "", 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         success: function(response) { 
          alert(response); 
         }, 
         error: AjaxFailed 
        } 
        ); 
     } 
</script> 

code behind ----------------- 

[WebMethod()] 
    public static string LoginFromFacebook() 
    { 
     return "helloworld"; 
    } 

ce code est très simple, je n'ai qu'une seule méthode Web dans mon fichier default.aspx quand je fais appel WebMethod Je reçois code de réponse 200 ok. J'ai enquêté en utilisant fiddler la réponse est comme ci-dessous HTTP/1.1 200 OK Cache-Control: privé Type de contenu: text/html; charset = utf-8 Serveur: Microsoft-IIS/7.5 Version X-AspNet: 2.0.50727 X-Powered-By: ASP.NET Date: Lun, 15 Aug 2011 09:16:21 GMT Contenu- Longueur: 1535

Je ne sais pas pourquoi cela se produit. Je m'attends seulement à la chaîne comme réponse où j'obtiens le html de la page entière comme réponse.

+0

Avez-vous eu un coup d'œil à la réponse envoyée par le serveur. Est-ce bonjour monde? Vous pouvez utiliser firebug pour le vérifier. – Steve

+0

Si vous retournez {"text": "helloworld"}? As-tu essayé? –

+0

Non, je ne reçois pas bonjour monde en réponse.Au lieu de cela, je reçois html de default.aspx – sachin

Répondre

0

Il existe un problème avec le site Web et les applications Web dans Visual Studio. vous pouvez simplement mettre le code de conception dans votre fichier aspx ou simplement utiliser le service web au lieu de default.aspx.
lien suivant contenant les étapes de base pour la demande ajax succès en utilisant jQuery, JavaScript ou ajax asp.net,

sample site for basic ajax function

+0

Oui, il fonctionne parfaitement avec l'appel de service Web. Mais je dois accéder à l'objet httpcontext/session dans la méthode web ce qui n'est pas possible si je vais aller avec webservice c'est pourquoi j'ai utilisé pagemethod Une autre alternative? – sachin

+0

vous pouvez utiliser la session dans le service Web. voir [MSDN Sample] (http://msdn.microsoft.com/en-us/library/system.web.services.webservice.session.aspx) pour savoir comment le faire –

+0

Merci Chamika ci-dessus solution a travaillé. En dehors de la solution ci-dessus en trouvant une autre solution alternative à [Ce lien] (http://www.chadscharf.com/index.php/2009/11/creating-a-page-method-scriptmethod-within-an-ascx-user -control-en utilisant-ajax-json-base-classes-et-reflexion /) – sachin

Questions connexes