我想在控制台中打印 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();
但这对我不起作用。下面的此操作分配给我页面上的按钮。
最佳答案
跨源请求简单 are not allowed by default 。远程服务器可能通过 CORS 向您的应用程序提供权限或者通过支持 Ajax 替代方案,如 JSONP .
已编辑:
使用 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 Simple Proxy
关于javascript - 如何使用javascript打印http响应中返回的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249742/