2011-09-22 2 views
0

J'ai un problème étrange, tout en appelant ajax jquery dans asp.net .. je reçois le parseError, et ce n'est pas prévu, parce que tout est en place.Problème avec l'appel jquery ajax dans asp.net

ci-dessous est ma webmethod.

public class MyLogic 
{ 
    private int _id; 

    public int Id 
    { 
     get { return _id; } 
     set { _id = value; } 
    } 
    private string _title, _image; 

    public string Image 
    { 
     get { return _image; } 
     set { _image = value; } 
    } 

    public string Title 
    { 
     get { return _title; } 
     set { _title = value; } 
    } 
} 

ci-dessous est la méthode que je fais appel

[WebMethod] 
    public static MyLogic[] GetTopArticles() 
    { 
     List<MyLogic> bList = new List<MyLogic>(); 
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MobileKeyboardConnection"].ConnectionString); 
     SqlDataAdapter adapTopStories = new SqlDataAdapter("m_sp_toparticles", con); 
     adapTopStories.SelectCommand.CommandType = CommandType.StoredProcedure; 
     adapTopStories.SelectCommand.Parameters.AddWithValue("@PortalId", 2); 
     adapTopStories.SelectCommand.Parameters.AddWithValue("@topValue", 5); 
     DataTable dtTopStories = new DataTable(); 
     adapTopStories.Fill(dtTopStories); 
     foreach (DataRow r in dtTopStories.Rows) 
     { 
      MyLogic c = new MyLogic(); 
      c.Id = Convert.ToInt32(r["Id"]); 
      c.Title = r["Title"].ToString(); 
      c.Image = r["image"].ToString(); 
      bList.Add(c); 
     } 
     return bList.ToArray(); 
    } 

et au-dessous est la conception.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      type: "POST", 
      url: "AjaxLogic.aspx/GetTopArticles", 
      dataType: "json", 
      contentType: "application/json; charset=utf-8", 
      data: "{}", 
      success: function (data) { 
       var result = data.d; 
       alert(result.length); 
      }, 
      error: function (data) { 
       alert(data.responseText); 
      } 
     }); 
    }); 
</script> 

S'il vous plaît tout savoir ce qui pourrait être question j'utilise asp.net de base et les pages maîtres dans mon application.

** * ** * ** * ** * ** * ** *JSON RÉPONSE* ** * ** * ** * ** * ****

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title> 

</title></head> 
<body> 
    <form name="form1" method="post" action="AjaxLogic.aspx" id="form1"> 
<div> 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZPKFQelTZBrnZbMRGP+4imyXfwO4" /> 
</div> 

    <div> 

    </div> 
    </form> 
</body> 
</html> 

Répondre

1

Essayez de remplacer:

data: {}, 

par:

data: '{}', 
+0

je l'ai déjà vérifié cela, mais cela aussi ne fonctionne pas, je remplacés par des guillemets doubles mais pas changer, n'est-ce pas la question de masterpage .. pourrait-il être? est ajax jquery pris en charge dans masterpage – Abbas

+0

@Abbas, non, sans rapport avec masterpages. Essayez de regarder dans FireBug ou Chrome Developer Tools à la demande AJAX envoyé et la réponse exacte du serveur. Vous pouvez également essayer de supprimer complètement le paramètre 'data' de votre requête ajax. –

+0

J'ai vérifié sous firebug, il dit 200 OK, mais sous Net -> Post -> il est dit Il n'y a pas d'objet enfant .. Je ne sais pas pourquoi il ne reçoit pas d'enregistrements. parce que j'ai appelé le SP et qu'il donne des résultats corrects – Abbas