无法使用 axios reactjs 从 header 获取 set-cookie 值
Unable to get set-cookie value from header with axios reactjs
我正在使用来自 React 应用程序的 REST API。我的 ASP .NET web api 服务器正在返回 cookie 以响应 axios 获取请求,但我 无法 获取 set-cookie header从回应。应用程序和 api 都是本地的 运行。
我可以在邮递员和浏览器 window 中看到 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 });
我花了 6 个小时试图在 headers 中找到它,但在@felixmosh 的帮助下,您可以在 document.cookie
中看到它。
我正在使用来自 React 应用程序的 REST API。我的 ASP .NET web api 服务器正在返回 cookie 以响应 axios 获取请求,但我 无法 获取 set-cookie header从回应。应用程序和 api 都是本地的 运行。 我可以在邮递员和浏览器 window 中看到 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 });
我花了 6 个小时试图在 headers 中找到它,但在@felixmosh 的帮助下,您可以在 document.cookie
中看到它。