我正在尝试使用此jquery代码将Accept HTTP标头设置为“text / xml”:
$.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());
}
});
在Firefox中它很棒。
但是在IE中,我试图为Accept标头设置的值似乎被附加到结尾,所以它变成:Accept: */*, text/xml.这导致我的ajax调用返回html版本而不是我想要的xml版本。
有谁知道如何在IE 8中正确设置/清除Accept标头?
更新:出于某种原因,当我输入时,星号没有出现。 IE中的Accept Header似乎是:Accept: */*, text/xml。