我正在开发一个Chrome扩展程序,该扩展程序将允许用户记录网站的所有HTTP请求,修改请求的一部分,然后重新发送。
我希望使用jQuery的ajax方法构造并发送修改后的请求。我已经能够构造请求的其他部分,但是据我所知,没有办法在请求中包含cookie值。
只是要澄清-我不是试图在浏览器上创建cookie,而是试图使用jQuery的ajax方法修改将作为HTTP请求的一部分发送的cookie值。
可以用jQuery的ajax完成吗?如果不是,是否可以在javascript中进行?
由于您是在谈论Chrome扩展程序,因此您可以使用webRequest
API来拦截和修改您的请求。
chrome.webRequest.onBeforeSendHeaders.addListener(
function(details) {
/* Identify somehow that it's a request initiated by you */
for (var i = 0; i < details.requestHeaders.length; i++) {
if (details.requestHeaders[i].name === 'Cookie') {
/* Do something with it */
break;
}
}
/* Add the Cookie header if it was not found */
return {requestHeaders: details.requestHeaders};
},
{urls: ["*://*.example.com/*"]},
["blocking", "requestHeaders"]
);
这样,您应该能够修改cookie,而无需实际修改浏览器的cookie存储。我说“应该”,因为我尚未测试此解决方案。
一些要点:
"webRequest"
,"webRequestBlocking"
和主机的权限(在这个例子中,"*://*.example.com/"
)Set-Cookie
响应到达Cookie存储区,可以通过修改中的响应标题来实现onHeadersReceived
。您可以使用请求ID查找相应的响应。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句