我想在控制台中打印http响应中返回的内容。例如,当我访问https://google.com并在“网络”标签中,可以看到诸如脚本,文本,文档,png之类的内容。我想打印所有.png文件的名称。我试图使用类似的东西:
function hand () {
console.log(this.getResponseHeader('content-type'));
}
var x = new XMLHttpRequest();
x.open('GET', 'https://google.com', true);
x.onreadystatechange = hand;
x.send();
但这对我不起作用。下面的操作已分配给我页面上的按钮。
默认情况下完全不允许跨域请求。远程服务器可以通过CORS或通过支持JSONP之类的Ajax替代品来为您的应用程序提供权限。
编辑:
使用AJAX获取跨域数据的唯一(简便)方法是使用服务器端语言作为代理,如Andy E所指出的。这是一个小示例,说明如何使用jQuery来实现:
jQuery部分:
$.ajax({
url: 'proxy.php',
type: 'POST',
data: {
address: 'http://www.google.com'
},
success: function(response) {
// response now contains full HTML of google.com
}
});
就那么简单。只是要知道您可以或不能使用已抓取的数据,并且要非常清楚这样的代理是一个严重的安全漏洞。至少列出可接受的地址列表,不要盲目接受任何传递的地址。在这里看看一个不错的代理脚本:PHP简单代理
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句