【问题标题】:Remove some cookie from ajax call with Axios使用 Axios 从 ajax 调用中删除一些 cookie
【发布时间】:2022-01-10 12:23:31
【问题描述】:

我在浏览器中使用Axios 来调用ajax 请求。现在我遇到了一些比某些标头具有高优先级的 cookie 的问题。每个请求我发送一个标头为AUTHTOKEN,但在 cookie 中SESSIONID 键存储的优先级高于AUTHTOKEN 标头。在某些情况下,我需要忽略 cookie。这是我的代码:

axios({
    url:`${sdpBasicUrl}/api/v3/requests/27363`,
    method: 'get',
    headers: {
        'Content-Type': 'application/json'  
        'AUTHTOKEN': 'GHG23847923HGJ'               
    }
})
.then(res => {
    console.log(res.data);
});

这是 cookie 示例:

_z_identity=true; PORTALID=1; csrfcookie=aasdasdjh24234b2bjh4hjl; SESSIONID=ffd68d32a14841c99905e3cf4897e15ec9b4777020854a76821fd7e1eab6db2dcab482eb4cfea2ce7f5a6c47c80271d09f608ed985004e5c85681b2939681b18

我该怎么办?你有什么办法可以解决我的问题吗?

【问题讨论】:

  • 好的,首先,您不能忽略 cookie,这是不可能的,您只能为您拥有的域创建或删除 cookie。因此,您宁愿尝试使用该 api 来断开用户连接。

标签: ajax api cookies axios


【解决方案1】:

您可以使用 transformRequest 来修改某些请求的标头。 transformRequest 允许在将请求数据和标头发送到服务器之前对其进行更改。这仅适用于请求方法“PUT”、“POST”、“PATCH”和“DELETE”。

transformRequest: [function (data, headers) {
    // Modify the header here and return the header
    return data;
}],

您可以在https://axios-http.com/docs/req_config获取更多信息

【讨论】:

    【解决方案2】:

    您可以像这样通过标头传递 cookie:

    Axios.request({
         url: "http://example.com",
         method: "get",
         headers:{
             Cookie: "cookie1=value; cookie2=value; cookie3=value;"
         } 
    }).then...
    

    因此,如果您不希望该值存在,则可以覆盖这些值。

    https://github.com/axios/axios/issues/943

    【讨论】:

      猜你喜欢
      • 2011-09-28
      • 1970-01-01
      • 2019-05-17
      • 2020-06-11
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 2012-12-27
      • 2019-01-31
      相关资源
      最近更新 更多