我有一个ASPX页面,可以像这样生成RSS XML:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Title</title>
<link>http://www.example.com/news</link>
<description>An RSS feed for the latest news articles.</description>
<language>en-us</language>
<ttl>60</ttl>
<image />
<lastBuildDate>Thu, 11 Jul 2013 16:44:10 GMT</lastBuildDate>
<item>
<title>The Future of News</title>
<image>/uploadedImages/news/Articles/blog.jpg?n=104</image>
<link>http://localhost/news/Articles/5363/</link>
<pubDate>2029-01-11</pubDate>
<formattedDate>today ago</formattedDate>
<summary>Where will news be in 30 years? Check out what sort of news WE think we'll be making!</summary>
<description />
</item>
...
</channel>
</rss>
我需要从这样的jQuery文件中调用这个feed:
$.ajax({
dataType: ($.browser.msie) ? "text" : "xml",
url: newsfeed,
cache: true,
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
success: function (data) {
...
该代码适用于Firefox和Chrome,但在IE9中失败。在IE9中,它会触发错误情况并显示两个警告,这两个警报都只是说“错误”。
“newsfeed”变量的值为“http://localhost/source/fixed/newsrss.aspx”,我已使用提醒确认。
在其他地方,我看到IE不喜欢“xml”数据类型,所以必须改为使用“text”。
我正在从localhost运行该站点,因此我不应该有任何跨域脚本。
答案 0 :(得分:0)
此问题的解决方案涉及检测正在使用的Web浏览器。如果浏览器是IE,那么我使用IE的XMLHttpRequest而不是使用jQuery AJAX。这是我的代码:
var xhReq = new XMLHttpRequest();
xhReq.open("GET", "/Source/Handlers/Search.ashx?q=" + val + "&d=" + dateObj.getTime(), false);
xhReq.send(null);
AjaxSuccess(xhReq.responseText);
AjaxSuccess方法包含在成功执行jQuery AJAX代码时调用的相同javascript。
所以我得到了它的工作,但我不知道为什么IE不喜欢jQuery方法。