2009-07-02 7 views
0

からXMLを取得するためにどのように私の方法である:私はXMLDocument.Thisを返す私のページ上のメソッドを書くのAjaxのjQueryの代わりにJSON

[System.Web.Services.WebMethod()] 
public static System.Xml.XmlDocument MyGet() 
{ 
    string cnn=System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString.ToString(); 
    SqlConnection cn = new SqlConnection(cnn); 
    SqlCommand cmd = new SqlCommand("select * from region", cn); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    cn.Open(); 
    DataSet dt = new DataSet(); 
    da.Fill(dt); 
    XmlDocument xdoc=new XmlDocument(); 
    xdoc.LoadXml(dt.GetXml()); 
    return xdoc; 
} 

、これが私のjQueryのAjaxコードです:

  $.ajax({ 
      type: "POST", 
      url: "Default2.aspx/MyGet", 
      data: "{}", 
      dataType: "xml", 
      success: function(result) { 
       $(result).find("Table").each(function() { 
        alert($(this).find("RegionID").text()); 
       }); 

      } 

でも動作しません。 WebサービスでMyGetメソッドを記述すると非常にうまく動作します。 どこに問題がありますか?あなたのサービスの操作に次の属性を追加すること

答えて

2

てみたくさん 感謝:

[ScriptMethod(ResponseFormat=ResponseFormat.Xml)] 
0

は、私はあなたがあなたのデータパラメータに{}を取り除く示唆しています。シリアライザは、xmlではなく、jsonを元に戻したいと考えている可能性があります。

0

私の提案は、xmlをjsonに変換するJqueryプラグインを試してみることです。あなたの問題はasp.netではないJqueryのAPIです。

0

いくつかの提案:

1)は、 "{}"、引用符なしではないでしょうか?

2)アラート(応答)を試すことができます。成功関数の中で、jQueryがどのようなデータを持っていると思うかを確認します。それはテキストかもしれません。私は予期しないデータ型をjQueryで以前に持っていました。

3)あなたは、これが

を助け代わりに$(結果).find( "表")

希望の$( "表"、結果)を試みることができます

関連する問題