Sto cercando di impostare l'intestazione Accept HTTP a "text/xml" con questo codice jQuery:Impossibile impostare correttamente l'header Accept HTTP con jQuery
$.ajax({
beforeSend: function(req) {
req.setRequestHeader("Accept", "text/xml");
},
type: "GET",
url: "[proper url]",
contentType: "text/plain; charset=utf-8",
dataType: ($.browser.msie) ? "text" : "xml",
username: '---',
password: '-------',
success: function(data) {
var xml;
if (typeof data == "string") {
alert("Data is string:" + data);
xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
xml.loadXML(data);
} else {
xml = data;
alert("Data is not string:" + $(xml).text());
}
// Returned data available in object "xml"
//alert("Status is: " + xml.statusText);
$("#ingest_history").html($(xml).text());
}
});
In Firefox funziona benissimo.
Ma in IE, il valore che sto cercando di impostare per l'intestazione Accept sembra essere aggiunto alla fine in modo che diventi: Accept: */*, text/xml
. Questo fa sì che la mia chiamata ajax restituisca la versione html al contrario della versione xml che voglio.
Qualcuno sa come impostare/cancellare correttamente l'intestazione Accept in IE 8?
Aggiornamento: per qualche motivo gli asterischi non apparivano mentre li inserivo. L'intestazione Accept in IE sembra essere: Accept: */*, text/xml
.
Non aggiunge solo il /. In realtà aggiunge: \ */\ * Problema di formattazione nella domanda –
Sì, ho pensato che si trattava di un problema di formattazione ... Ho affrontato la stessa cosa – BStruthers