2013-07-30 62 views
0

我想开发一个小型RSS阅读器,它将从各种网站获取XML文档。 我认为XHR会很简单,如果用户可以操纵浏览器UI来获取明显的“Cross Origin”网页,那么JavaScript代码不应该能够轻松完成这项工作吗?显然没有:/无法从本地文件获取XMLHttpRequest响应:///也不从本地Web服务器获取

这里是我想要做的事:

var xhr = new XMLHttpRequest(); 
    // A real feed URL, its web server should allow CORS 
    xhr.open('GET', 'http://feeds2.feedburner.com/thenextweb'); 
    xhr.send(); 

本地打开我的HTML页面(文件:///),使原产地空和响应空的,但如果我访问页面通过本地Web服务器(我试过Python和Node服务器脚本),Origin不为null,但响应仍为空。

我知道有足够的XHR问题,但有人可以指出我错过了什么?

回答

3

Feedburner不支持CORS(还)。这些是从的jsfiddle执行代码时,我从FeedBurner的接收头:

HTTP/1.1 200 OK 
Content-Type: text/xml; charset=UTF-8 
ETag: ckkcnAejDTcF+4d0Kj6kftZuq+0 
Last-Modified: Tue, 30 Jul 2013 19:56:16 GMT 
Content-Encoding: gzip 
Transfer-Encoding: chunked 
Date: Tue, 30 Jul 2013 19:58:11 GMT 
Expires: Tue, 30 Jul 2013 19:58:11 GMT 
Cache-Control: private, max-age=0 
X-Content-Type-Options: nosniff 
X-XSS-Protection: 1; mode=block 
Server: GSE 

如果它支持CORS你应该看到一个Access-Control-Allow-Origin头在那里

+0

感谢您的回答。在那种情况下,你有没有支持CORS的RSS源的例子?我尝试了各种其他流行的Feed,但都没有给出'Access-Control-Allow-Origin'标题。我不确定CORS是否是一件罕见的事情,或者我错误地介入了。 – VCake

+0

我认为您可以通过Google Feed API使用JSONP来获取您正在寻找的大部分内容:https://ajax.googleapis.com/ajax/services/feed/find?v=1.0&q=The%20Next%20Web&callback = processResults'。这里记录API:https://developers.google.com/feed/ –

相关问题