我正在尝试获取新闻网站的提要。以为我会使用谷歌的提要 API 将提要燃烧器提要转换为 json。以下 url 将从提要中以 json 格式返回 10 个帖子。http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/mathrubhumi
我使用以下代码来获取上述网址的内容
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://ajax.googleapis.com/ajax/services/feed/load",
data: {
"v": "1.0",
"num": "10",
"q": "http://feeds.feedburner.com/mathrubhumi"
},
success: function(result) {
//.....
}
});
但它不起作用,我收到以下错误
XMLHttpRequest 无法加载 http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http%3A%2F%2Ffeeds.feedburner.com%2Fmathrubhumi。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问Origin ' http://localhost '。
我该如何解决?
我相信这可能是 Chrome 不支持localhost
通过Access-Control-Allow-Origin
--参见 Chrome 问题
要让 Chrome 发送Access-Control-Allow-Origin
标头,只需将 /etc/hosts 文件中的 localhost 别名为其他域,例如:
127.0.0.1 localhost yourdomain.com
然后,如果你使用yourdomain.com
而不是访问你的脚本localhost
,则调用应该会成功。
谢谢你。我遇到了这个问题并切换到 IE 边缘,导致我看到我的服务器代码中的潜在错误,它被 Chrome 拒绝 localhost 所掩盖。
对我也不起作用。也许 Chrome 的更新阻止了这个“漏洞”?
这里也没有帮助。我的网站已经这样设置了,但是我确实有一个很大的不同。我正在使用不同的端口。我敢肯定,如果它是同一个端口,它会起作用。HTTP 与 HTTPS 当然是不同的端口,所以这可能会导致一些问题。我的不是 HTTPS,但我试图访问同一域上的某些内容,但不是 80 端口。
如果 chrome 扩展程序正在访问 API,该怎么办