Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery从外部网站获取价值_Javascript_Jquery_Cross Domain - Fatal编程技术网

Javascript 使用jQuery从外部网站获取价值

Javascript 使用jQuery从外部网站获取价值,javascript,jquery,cross-domain,Javascript,Jquery,Cross Domain,因此,我有一个外部页面: http://api.aghost.net/api/futures/index.cfm?Username=E020521102&Password=ksc0rNX&service=table&style=3&layout=chart&showGrid=0&symbols=@C@3&colorLabels=0&contractFormat=2&dateFormat=short&fontsize=

因此,我有一个外部页面:

http://api.aghost.net/api/futures/index.cfm?Username=E020521102&Password=ksc0rNX&service=table&style=3&layout=chart&showGrid=0&symbols=@C@3&colorLabels=0&contractFormat=2&dateFormat=short&fontsize=large&timeFormat=m&dateFormat=m
我试图从中检索“345'4”,但我的代码只是给了我一个对象,当我在对象上运行“.toSource”时,我收到以下输出:

({0:{}, length:1, prevObject:{0:{location:({}), icpsignup:{0:{}, 1:{}, 2:{}, 3:{}, 4:{}, 5:{}, 6:{}, 7:{}, 8:{}, 9:{}}, jQuery1710019525210189072606:2}, context:{location:({}), icpsignup:{0:{}, 1:{}, 2:{}, 3:{}, 4:{}, 5:{}, 6:{}, 7:{}, 8:{}, 9:{}}, jQuery1710019525210189072606:2}, length:1}, context:{location:({}), icpsignup:{0:{}, 1:{}, 2:{}, 3:{}, 4:{}, 5:{}, 6:{}, 7:{}, 8:{}, 9:{}}, jQuery1710019525210189072606:2}, selector:"div.month.left span.big"})
我做错了什么?我觉得我已经接近解决方案了,但我还缺少一些东西

下面是我的代码:

var data = 'http://api.aghost.net/api/futures/index.cfm?Username=E020521102&Password=ksc0rNX&service=table&style=3&layout=chart&showGrid=0&symbols=@C@3&colorLabels=0&contractFormat=2&dateFormat=short&fontsize=large&timeFormat=m&dateFormat=m';
var $row1 = jQuery("div.month.left span.big"),  $row2 = jQuery("#cpuloaddynamic"), $row3 = jQuery("#meminfodynamic");

$.get("index.html", function(data){
    var $data=$(data);
    $row1.html( $data.find('tbody > tr:first-of-type > td:nth-of-type(5)').html() );
});
alert($row1.toSource());
我是从以下帖子开始的:

这是我编辑的代码:

var data = 'http://api.aghost.net/api/futures/index.cfm?Username=E020521102&Password=ksc0rNX&service=table&style=3&layout=chart&showGrid=0&symbols=@C@3&colorLabels=0&contractFormat=2&dateFormat=short&fontsize=large&timeFormat=m&dateFormat=m';
var $row1 = jQuery("div.month.left span.big"),  $row2 = jQuery("#cpuloaddynamic"), $row3 = jQuery("#meminfodynamic");

$.get(data, function(data){
    var $data=$(data);
    $row1.html( $data.find('tbody > tr:first-of-type > td:nth-of-type(5)').html() );
    alert( $data.find('tbody > tr:first-of-type > td:nth-of-type(5)').html() );
});

您似乎将请求发送到了错误的页面。 $.get(您的“index.html”)的第一个参数是必须接收您的请求的页面的url(我认为这是“data”变量中的url)。函数中的“data”参数应该具有所需的对象


但是,即使您解决了这个问题,我认为代码也不起作用,因为使用jquery,您可以只向域中的url发送请求。

这是一个非常糟糕的设计:用户名和密码在url的查询字符串中。您使用
.toSource()
试图查找什么?这将返回对象。你是说
$row1.html()
?你应该提醒
$data.find('tbody>tr:first of type>td:nth of type(5)').html()
,看看它是否正确。尝试使用.filter()而不是.find()。我没有创建API,我同意应该使用OAUTH。。有人让我试试。toSource(),我想这是错误的答案!我已经对代码进行了编辑,但我遇到了麻烦。正如@freddy提到的,我有跨来源问题,Firebug返回以下错误消息:
跨源请求被阻止:同源策略不允许读取远程资源http://api.aghost.net/api/futures/index.cfm?Username=E020521102&Password=ksc0rNX&service=table&style=3&layout=chart&showGrid=0&symbols=@C@3&colorLabels=0&contractFormat=2&dateFormat=short&fontsize=large&timeFormat=m&dateFormat=m。这可以通过将资源移动到同一个域或启用CORS来解决。
我的代码编辑在原始帖子中。我前面回答中的最后一句话就是为什么会出现此错误。。。你可以试试这个