【发布时间】:2014-06-18 05:43:38
【问题描述】:
根据 Crossrider 文档,目前有一个带有 onRequest 事件的 webRequest 对象,它允许访问请求 URI 等,但我找不到任何方法来检查响应数据。我想知道是否有一种方法可以实际检查该请求的响应,例如响应标头和可能的响应数据。感谢您的帮助。
【问题讨论】:
根据 Crossrider 文档,目前有一个带有 onRequest 事件的 webRequest 对象,它允许访问请求 URI 等,但我找不到任何方法来检查响应数据。我想知道是否有一种方法可以实际检查该请求的响应,例如响应标头和可能的响应数据。感谢您的帮助。
【问题讨论】:
我在这里很危险,但我认为您是在 AJAX 请求之后,在这种情况下,您是在 appAPI.request API 之后,您确实可以在其中获取响应和标头数据。 appAPI.webRequest API 类似于 Chrome's webRequest API 用于“观察和分析流量以及拦截、阻止或修改正在进行的请求”。
如果不是这种情况,请您澄清一下您的情况。
[回应评论]
首先让我澄清一下,webRequest API 在发出请求之前运行(即浏览器正在请求页面但尚未发出实际的 HTTP 请求),因此它与讨论响应数据无关。
但是,由于在webRequest的详细信息中提供了URL,因此您可以使用前面提到的appAPI.request API 自己获取响应数据和标头,如下所示:
appAPI.ready(function() {
appAPI.webRequest.monitor.onBeforeNavigate.addListener({
callback: function(details) {
appAPI.request.get({
url: details.requestUrl,
onSuccess: function(response, additionalInfo) {
appAPI.db.async.set(details.requestUrl, {
response: response,
headers: additionalInfo.headers
});
}
});
}
});
});
注意:在本例中,我使用了新的 webRequest.monitor API,专为监控而设计的轻量级 API。目前没有文档记录(文档应该在下周左右完成),但您可以开始在 Chrome、Firefox 和 Internet Explorer 上使用它。
[披露:我是 Crossrider 的员工]
【讨论】: