【问题标题】:Unable to get set-cookie value from header with axios reactjs无法使用 axios reactjs 从标头获取 set-cookie 值
【发布时间】:2020-05-19 02:46:00
【问题描述】:

我正在使用 react 应用程序中的 REST API。我的 ASP .NET Web api 服务器正在返回 cookie 以响应 axios 获取请求,但我 UNABLE 无法从响应中获取 set-cookie 标头。 app 和 api 都在本地运行。 我可以在邮递员和浏览器窗口中看到 cookie,但在 react 应用程序中看不到。请帮我整理一下。

React 应用

signInWithEmailAndPassword = (email, password) => {
        axios.defaults.withCredentials = true
        return new Promise((resolve, reject) => {
            axios.get('https://localhost:44399/api/Cross/GetTest')
                .then(response => {
                    var value = response.headers["set-cookie"] // it is always undefined
                });
        });
    };

REST API

public class CrossOrigenController : BaseApiController
    {
        [Route("api/Cross/GetTest")]
        [System.Web.Mvc.HttpGet]
        public HttpResponseMessage Get()
        {
            var resp = new HttpResponseMessage(HttpStatusCode.OK);
            var cookie = new CookieHeaderValue("session-id", DateTime.Now.ToString());
            cookie.Expires = DateTimeOffset.Now.AddDays(1);
            cookie.Domain = Request.RequestUri.Host;
            cookie.Path = "/";
            cookie.HttpOnly = false;
            cookie.Secure = false;
            resp.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            return resp;
        }
    }

在 WebApiConfig 中启用核心

config.EnableCors(new EnableCorsAttribute("http://localhost:3000", "*", "*") { SupportsCredentials = true });

【问题讨论】:

  • console.log(response.headers);时看到了吗?
  • 是的,没有这样的标头值。
  • 您的服务器上的httpOnly 是否设置为开启?
  • 感谢@felixmosh 的回复。 HttpOnly 和 Secure 都设置为 false。
  • 为什么需要这个标题?如果可以删除 httpOnly,则可以从 document.cookie 访问 cookie 值

标签: reactjs rest cookies axios create-react-app


【解决方案1】:

我花了 6 个小时试图在标题中找到它,但在 @felixmosh 的帮助下,您可以在 document.cookie 中看到它。

【讨论】:

    猜你喜欢
    • 2014-02-26
    • 2015-02-10
    • 1970-01-01
    • 2021-10-21
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多