我试图从一个网站获得一些dom元素,我有10个或更多的网站为这件事。我已经做了一个网站使用以下代码,但它是不工作的下一个网址。
$.get('http://www.example.com/view_video.php?viewkey=ph576bfc568f54d', function (response) {
var thumbnail = $(response).find('meta[property="og:image"]');
var thumbUrl = $(thumbnail).attr('content');
console.log(thumbUrl);
});
我试过上面的代码。对于其他网站它的工作,但不是这个。
如果您想尝试,您还需要使用上面的第一个脚本。
$.ajaxPrefilter(function (options) {
if (options.crossDomain && jQuery.support.cors) {
var http = (window.location.protocol === 'http:' ? 'http:' : 'https:');
options.url = http + '//cors-anywhere.herokuapp.com/' + options.url;
//options.url = "http://cors.corsproxy.io/url=" + options.url;
}
});
$.get('http://www.example.com/view_video.php?viewkey=ph576bfc568f54d', function (response) {
var thumbnail = $(response).find('meta[property="og:image"]');
var thumbUrl = $(thumbnail).attr('content');
console.log(thumbUrl);
});
1条答案
按热度按时间gjmwrych1#
在将URL的协议部分作为参数传递给
cors-anywhere.herokuapp.com
之前,需要将其去除。试试这个:
在解析
response
时,我认为将整个响应解析为自己的DOM树是一种浪费资源的做法,而使用简单的字符串方法提取值可能更好。但是,您当前的方法失败了,因为如果您传递整个响应(使用
$(response)
),jQuery不会为您创建DOM树。试试这个: