javascript - 如何使用javascript打印http响应中返回的内容

标签 javascript ajax response

我想在控制台中打印 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/

相关文章:

javascript - 调用基类函数——JavaScript中的类继承

javascript - 使用ajax返回谷歌地图标记始终为空

javascript - FullCalendar 中的工具提示

PHP 写入二进制响应

java - java如何获取响应对象

javascript - HTML - 用户添加的变量

javascript - jQuery-UI slider 不显示

javascript - 在特定页面上执行 javascript 的正确 "Rails"方法

javascript - 用于小型传输的 Ajax 或 Websockets

java - Servlet JSON 响应 ENCODING 问题 For "="