使用Javascript的网页是否可以从其他网站获取数据?在我的情况下,我想得到它用于计算和绘制图表。但由于安全问题,我不确定这是否可行。如果它被认为是不,但有一个工作我会很高兴被告知工作。如果可能的话,我不想在服务器端收集这些信息。
感谢任何和所有帮助。
答案 0 :(得分:2)
了解JSONP格式和跨网站请求(http://en.wikipedia.org/wiki/JSON#JSONP)。
您可能需要在服务器端使用“PHP代理”脚本,该脚本将从网站获取信息并将其提供给您的Javascript。
答案 1 :(得分:1)
唯一可靠的方法是让“您的”网络服务器充当代理。在PHP中,您可以使用curl()
向外部站点发出HTTP请求,然后回显响应。
答案 2 :(得分:0)
由于same origin policy.,您无法从其他服务器提取数据。您可以采取一些技巧来解决这个问题,例如将网址放在<script>
标记中,但在您的情况下,它不会只是解析HTML。
使用simple_dom_html来解析数据服务器端。无论如何,它比在JavaScript中更容易。
您可以这样做的一个简单方法是使用inline iframe。如果您从中获取数据的网页没有标题,或者您可以隔离所引入的数据(例如图像或SWF),这可能会有效。
答案 3 :(得分:0)
跨域javascript过去是不可能的,使用(php-)代理是一种解决方法。
jsonp完全改变了这一点,它允许从另一台服务器请求javascript(如果它有一个支持jsonp的API,很多像google,twitter,yahoo,...等更大的网络播放器),指定回调函数在您的代码中需要被触发以响应响应。
javascript中的响应将包含:
jquery offer easy support for jsonp out of the box等框架。
获得原始数据后,您可以绑定到google chart tools即可动态创建图表并将其插入到您的网络应用中。
答案 4 :(得分:0)
另外值得考虑的是对XMLHttpRequest Access Control的支持,这是对一些现代浏览器的支持。
如果您尝试通过网页访问的服务提供商已设置此设置,则对XMLHttpRequest进行非常简单的调用,您将无需JSONP即可访问该站点上的资源(特别适用于请求不是GET,即POST,HEAD等)