我正试图从雅虎财经获得头条新闻,以下代码似乎无效。它直接进入错误处理程序。我尝试了一些其他的URL,但它们似乎也没有用。我在android模拟器中用离子测试了这段代码。我做错了什么?
$http.get("http://feeds.finance.yahoo.com/rss/2.0/headline?s=GOOG®ion=US&lang=en-US")
.success(function(data) {
$log.log(data);
})
.error(function(data) {
$log.log("ERROR: " + data);
});
更新:
通读Mitch的链接,你很可能会像我一样找到解决方案。对我来说,开始使用铬时我必须使用--disable-web-security
。显然allow origin plugin对于这些类型的http请求是不够的。
此外,如果您在模拟器中遇到问题,请不要使用实时重新加载。这似乎导致了http请求的问题。
答案 0 :(得分:0)
如果查看开发者控制台,您会看到以下消息:No 'Access-Control-Allow-Origin' header is present on the requested resource.
这意味着收到的响应允许来自localhost的请求,因此您的浏览器会阻止它。出于安全原因,Javascript受“同源策略”的限制,因此恶意脚本无法联系远程服务器并发送敏感数据。有关此类问题的更多详细信息,请访问:https://stackoverflow.com/a/9311585/2298988
这只是因为您在浏览器中测试应用程序而发生的。 如果您构建自己的Ionic应用并在设备上进行测试,它应该可以正常运行。
要在浏览器中测试您的应用,您必须禁用网络安全。你应该做什么仅用于开发目的,从不在冲浪时。
以下是解释如何在Chrome中停用网络安全的帖子: Disable same origin policy in Chrome
似乎有一个插件用于Firefox,但我没有尝试过: Disable firefox same origin policy