不幸的是,跨域限制意味着这根本行不通。该系统是专门构建的,因此您不能使用AJAX拉取任意跨域内容。没有任何形式的预解析方法可以将要获取的非JSONP数据转换为实际的JSONP数据(因为这会超出限制的要点)。
您将不得不打电话给从Yahoo!提取数据的本地服务器。并将其发送到您的AJAX请求,或者找到某种类型的服务,该服务将从任意URL中提取并以JSONP形式返回数据。碰巧的是,雅虎!提供这样的服务:YQL(雅虎查询语言)。有关更多详细信息,请参见此链接。
要完成所需的操作,请使用以下小提琴中的代码:http :
//jsfiddle.net/c5TeM/1/
function get_url(remote_url) { $.ajax({ url: "http://query.yahooapis.com/v1/public/yql?"+"q=select%20*%20from%20html%20where%20url%3D%22"+enpreURIComponent(remote_url)+"%22&format=json", type: 'get', dataType: 'jsonp', success: function(data) { alert(data.query.results.body.p); }, error: function(jqXHR, textStatus, errorThrow){ alert(jqXHR['responseText']); } })}


