gpt4 book ai didi

javascript - 可以修改 jQuery ajax 请求中的 cookie 值吗?

转载 作者:可可西里 更新时间:2023-11-01 02:43:50 31 4
gpt4 key购买 nike

我正在开发一个 Chrome 扩展程序,允许用户记录站点的所有 HTTP 请求,修改请求的片段,然后重新发送。

我希望使用 jQuery's ajax method构建并发送修改后的请求。我已经能够构建请求的其他部分,但据我所知,没有办法在请求中包含 cookie 值。

需要说明的是 - 我不是要在浏览器上创建 cookie,我是要修改将作为 HTTP 请求的一部分使用 jQuery 的 ajax 方法发送的 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/")
  • 需要注意的是,您不能拦截自己的同步请求,以防止出现死锁。只要您的 AJAX 是异步的,就没有关系。
  • 如果您需要阻止 Set-Cookie 响应到达 cookie 存储区,您可以通过修改 onHeadersReceived 中的响应 header 来实现。您可以使用请求 ID 找到相应的响应。

关于javascript - 可以修改 jQuery ajax 请求中的 cookie 值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29813340/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com