gpt4 book ai didi

javascript - Cookie 在 Web api 中返回 null

转载 作者:行者123 更新时间:2023-11-28 07:01:50 28 4
gpt4 key购买 nike

我在 Web api 中使用 cookie 进行身份验证。在服务器端 Web api 中创建 cookie。当我阅读时,它显示我为空。 另外,我正在使用 html ajax 发送请求。

用于创建cookie的函数:

public HttpResponseMessage SetCookies()
{
var resp = new HttpResponseMessage()`enter code here`;

HttpClient client = new HttpClient(handler);

var cookie = new CookieHeaderValue("MyCookie", "12345");
cookie.Expires = DateTimeOffset.Now.AddDays(1);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";

resp.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return resp;
}

创建 cookie 后,我尝试使用以下代码读取 cookie:

 CookieHeaderValue cookie = Request.Headers.GetCookies("MyCookie").FirstOrDefault();
if (cookie != null)
{
string sessionId = cookie["MyCookie"].Value;
}

它总是返回 null。

请帮助我如何获取和设置 cookie 值。

谢谢。

这是java脚本代码:

function setCookie() {
var cname = " MyCookie";
var cvalue = "1234fer5678";
var exdays = 1;
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function onButtonClick() {
setCookie();`enter code here`
$.ajax({
url: 'http://localhost:49702/v1/user/register',
type: "GET",
data: {},
dataType: 'json',
xhrFields: {
withCredentials: true
},
crossDomain: true
});

};

我手动设置cookie值。我仍然在服务器端 api 的 header 请求 null 中获取 cookie

最佳答案

我看过你的javascript代码,在代码crossDomain: true中,我认为你的问题与跨域有关,你可以试试这个:

$.ajax({
url: 'http://localhost:49702/v1/user/register',
type: "GET",
data: {},
dataType: 'jsonp', // Notice! jsonp (lowercase)
xhrFields: {
withCredentials: true
},
crossDomain: true
});

更新:看下面的代码,设置cookie的时候可以设置domain

var cookieName = 'HelloWorld';
var cookieValue = 'HelloWorld';
var myDate = new Date();
myDate.setMonth(myDate.getMonth() + 12);
document.cookie = cookieName +"=" + cookieValue + ";expires=" + myDate
+ ";domain=.example.com;path=/";

关于javascript - Cookie 在 Web api 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32069584/

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