【问题标题】:Not able to retrieve JSESSIONID cookie with AXIOS无法使用 AXIOS 检索 JSESSIONID cookie
【发布时间】:2019-08-14 16:38:07
【问题描述】:

我正在尝试调用 API 来验证用户。获得 200 成功响应,但未获得 JSESSIONID cookie 响应。

axios.defaults.withCredentials = 'true';
axios.defaults.crossDomain = 'true';
axios.defaults.headers.post['Content-Type'] = 'application/json';
axios.defaults.headers.post['withCredentials'] = 'true';
const data = {
          username: this.state.user,
          credential: this.state.pass
        }

        axios.post('http://3.122.7.162:5000/v60/admin/session', data)
        .then(response => {
          console.log("response");
          console.log(response);
        })
        .catch(error => {
          console.log("error");
          console.log(error);
        });

谢谢

【问题讨论】:

    标签: javascript reactjs cookies axios


    【解决方案1】:

    XMLHttpRequestfetch(浏览器中的内置 HTTP 请求库)不会在其响应对象中公开有关 cookie 的信息。

    通过直接读取Set-Cookie 标头甚至无法获得它,因为它是a forbidden response header

    读取 cookie 数据的唯一方法是通过document.cookie,但这仅提供有关相同源 cookie 的信息。

    没有直接的方法可以使用 Ajax 方法从跨域 cookie 中获取数据。唯一的方法是更改​​服务器端代码,使其通过 JavaScript 可以读取的另一个路径(例如在响应正文中)返回 cookie 数据的副本。


    这不会阻止您使用 cookie。除非禁用第三方 cookie,否则它们仍将设置在浏览器的 cookie jar 中,并与未来的请求一起自动发送到它们所属的域。

    【讨论】:

      猜你喜欢
      • 2012-01-20
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      相关资源
      最近更新 更多