无法通过JavaScript以字符串格式从Google财经获取数据

时间:2014-09-06 16:11:31

标签: javascript jquery google-finance

function getData(){

    $.get("http://www.google.com/finance/getprices?q=.NSEI&x=NSE&i=60&p=1d&f=d, o, h, l, c, v", function(data){
        alert("Data:"+data);
});

 }   
getData();

以上网址以字符串格式提供响应,而不是JSON格式,因此我无法使用$ .getJSON。

我能够使用Java获取数据,但是使用JavaScript时,数据不会出现,并且不会执行警报。

如何通过$.get方法从外部网址获取数据?

2 个答案:

答案 0 :(得分:0)

您正在尝试访问来自其托管的不同域中的数据,这违反了Same-Origin Policy。从本质上讲,这是一种防止跨站点脚本攻击的安全措施。

因此,除非支持CORS,否则您无法向其他域发出请求。如果您在浏览器控制台中查看,则会看到以下错误:

XMLHttpRequest cannot load http://www.google.com/finance/getprices?q=.NSEI&x=NSE&i=60&p=1d&f=d,%20o,%20h,%20l,%20c,%20v. Origin http://example.com is not allowed by Access-Control-Allow-Origin.

ways around it,但这肯定是您可以使用Java而不是JavaScript访问数据的原因。

答案 1 :(得分:0)

尝试从服务器而不是前端发出请求,例如,如果您在节点应用程序或Java应用程序上执行此操作,请在服务器上创建端点,然后将其作为休息服务公开,然后调用来自UI的端点使用$.get()xml http请求。

因此,基本上,当您在服务器上调用该端点时,服务器将获取该数据并将其传递到前端。