我尝试使用我的Chrome扩展程序来调试.log POST请求,但无法弄清楚如何操作,有人能给我举个例子吗?我已经查看了Chrome扩展API,但似乎无法实现它
答案 0 :(得分:1)
在Google Chrome浏览器中,POST
和GET
等浏览器请求会显示在检查器的Network
标签中。
Chrome Devtools Overview的屏幕截图:
如果您正在寻找一种自然的方式来对浏览器请求进行Javascript挂钩(例如将其记录下来),那么您将遇到更多问题,因为Javascript没有原生方式来挂钩出于安全原因,按浏览器规模提出请求。
但是,如果您可以使用专用扩展程序来完成作业,则可以查看Chrome的webRequest
扩展程序:
https://developer.chrome.com/extensions/webRequest
使用chrome.webRequest API观察和分析流量并拦截,阻止或修改正在进行的请求。
以下是收听onBeforeRequest
事件的示例:
chrome.webRequest.onBeforeRequest.addListener(callback, filter, opt_extraInfoSpec);
请注意,存在安全要求和限制:
您必须声明" webRequest"
extension manifest
中的权限 使用Web请求API以及任何主机的主机权限 您要访问的网络请求。
请注意,由于网页资源加载(HTTP / 1.x或HTTP / 2.0)的有序或异步性质,您无法保证抓住所有浏览器发出的请求发生之前你的Javascript钩子已经设置好了。
最后,您有一些技巧,例如those referenced here,可通过Javascript代理机制检测AJAX调用。
另一种策略是将请求检测在服务器上逐出,并通知客户端他发送了一个请求(例如通过Websockets /队列)。它只适用于您管理的域上的请求,这听起来像是一个昂贵的解决方案。这完全取决于你的最终需求。