J'ai une page ASP.net qui génère un fichier XML dynamique mais l'instruction get d'une requête jquery ajax ne reconnaît pas le fichier. cette solution a fonctionné avec un doc php obtenant le xml dynamique. La page asp.net qui génère xml fonctionne très bien. La requête ajax ne réussit jamais. des idées pour expliquer pourquoi beaucoup appréciéProblème lors de l'obtention du fichier XML dynamique
<%@ Page Language="C#" AutoEventWireup="true" Debug="true" ContentType="text/xml" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">
protected void Page_Load(object source, EventArgs e)
{
XmlDocument doc = new XmlDocument();
// XML declaration
XmlNode declaration = doc.CreateNode(XmlNodeType.XmlDeclaration, null, null);
doc.AppendChild(declaration);
// Root element: article
XmlElement root = doc.CreateElement("statements");
doc.AppendChild(root);
string connStr = "";
string sqlStr = "SELECT [title], [statement] FROM [a table]";
using (SqlConnection connection = new SqlConnection(connStr))
{
using (SqlCommand command = connection.CreateCommand())
{
command.CommandText = sqlStr;
connection.Open();
using (SqlDataReader dataReader = command.ExecuteReader())
{
int indexOftitle = dataReader.GetOrdinal("title");
int indexOfstatement = dataReader.GetOrdinal("statement");
while (dataReader.Read())
{
string title = (string)dataReader.GetValue(indexOftitle);
string statement = (string)dataReader.GetValue(indexOfstatement);
XmlElement xstatement = doc.CreateElement("statement");
root.AppendChild(xstatement);
XmlAttribute xtitle = doc.CreateAttribute("title");
xtitle.Value = title;
xstatement.Attributes.Append(xtitle);
XmlAttribute xtext = doc.CreateAttribute("text");
xtext.Value = statement;
xstatement.Attributes.Append(xtext);
}
}
connection.Close();
}
}
doc.Save(Response.OutputStream);
}
</script>
<script type="text/javascript">
$.ajax({
type: "GET",
url: "../data/genxml_docstate.aspx",
dataType: "xml",
success: parseXml
});
});
function parseXml(xml) {
alert("ok");
var items = [];
var header = 'some initial html'
$(xml).find("statement").each(function() {
var title = $(this).attr("title");
var titleid = (title.substr(0, 8)).replace(" ", "_");
items.push('<li id="' + titleid + '">' + title + '</li>');
});
$('#doclist').append(items.join(''));
$("#doc_box_right").html(header);
$(xml).find("statement").each(function() {
var title = $(this).attr("title");
var titleid = (title.substr(0, 8)).replace(" ", "_");
var id = '#' + titleid;
var statement = $(this).attr("text");
$(id).css("cursor", "pointer");
$(id).mouseover(function() {
$(id).css("background-color", "gray");
$("#doc_box_right").html('<h2>' + title + '</h2><p>' + statement + '</p>');
});
$(id).mouseleave(function() {
$(id).css("background-color", "transparent");
$("#doc_box_right").html(header);
});
});
}
</script>
essayez de réussir comme ce succès: function (data) {} – kobe
juste mettre une alerte à l'intérieur du succès ci-dessus avec la sytax je l'ai mentionné. et même vous pouvez avec panneau firebug .net si vous obtenez des données ou non. – kobe
@gov - la fonction de succès ajax a bien fonctionné avant ... ?? –