gpt4 book ai didi

c# - Nancyfx Request.Session 不持有 AJAX 帖子的值

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:23 25 4
gpt4 key购买 nike

我对 Nancy 很陌生,所以希望我只是在做一些愚蠢的事情。我有一个 nancy 服务,我正在发布数据:

$.ajax({
type: 'POST',
url: url,
data: JSON.stringify({
searchTerm: productSearchTerm,
pageSize: pageView.PageSize(),
selectedBrands: pageView.checkedBrands(),
pageNumber: pageView.CurrentPage(),
selectedCategories: pageView.checkedCategories(),
selectedGender: pageView.checkedGender(),
SelectedColours: pageView.checkedColour(),
saleItemsOnly: pageView.saleItemsOnly(),
selectedMinimumPrice: pageView.minPrice(),
selectedMaximumPrice: pageView.maxPrice()
}),
contentType: "application/json; charset=utf-8",
dataType: 'json'
})
.done(function (data) {
bindSearchResult(data);
})
.fail(function (a) {
console.log(a);

});

然后在服务中我需要保留一堆字符串值以备将来来自用户的请求,我这样做是这样的:

    private void AddListOfStringToIsSessionNull(string name, IEnumerable<string> data)
{
if (Session[name] == null)
{
Session[name] = data.ToList();
}
}

这些似乎设置了 session 变量,当我在页面返回后检查页面时,出现了一个“_nc”cookie。

但是,如果我然后 F5 页面, session 项在服务器上再次全部为空。

我已经排除了跨站点发布,因为它们都在同一个域中。

这可能是 AJAX 的东西吗?似乎不太可能,因为这似乎是一件非常标准的事情。或者你不能在 POST 上设置它吗?如果是这样,有没有办法解决这个问题?

如果有人能提供帮助,我将永远感激不已,否则我将不得不重新使用 WCF 编写此代码,这会让我从窗口跳下去:)

非常感谢。

编辑

  • 在 Chome 中打开一个新的隐身窗口 我点击主页,没有 nancy cookie现在(正确)
  • 输入一个搜索词,它会回调,AJAX 发布并抓取 JSON,还会在 Nancy Session 中弹出一个字符串列表
  • 检查 cookie,nancy 已经出现了,回传时 session 值是正确的:

      npTBnqPp99nLd5fU0%2btJbq%2fY%2bdf2UFWTaq5D28Az7Jw%3dzF8cIHNxTWX399sbmowjheho2S29ocpKs1TXD51BrbyPPNCeLfAcYqWhkRHqWdwKJNED5kuspllIjhI5rf2W6NKtf8xo68BlF5eLLgJxMtAxw2yD2ednEzUazq1XBt2Id77t5LE5tZVwkpRGDT5b9J0nQnr9zfzCOALXb2hQQGBPkMVyNNTO24pW1UC6Uda3B86LLYA02Jgy4G9DiT6KsutR3pSXO8AZFOlcmAEHbSSX9A8FAHaL ... etc.
    • 然后我搜索调用这段代码的不同搜索词:--Session.DeleteAll();
    • nancy session 用新数据重新填充并返回给浏览器

但是此时 cookie 尚未更新为新值,它仍然如下所示:

    npTBnqPp99nLd5fU0%2btJbq%2fY%2bdf2UFWTaq5D28Az7Jw%3dzF8cIHNxTWX399sbmowjheho2S29ocpKs1TXD51BrbyPPNCeLfAcYqWhkRHqWdwKJNED5kuspllIjhI5rf2W6NKtf8xo68BlF5eLLgJxMtAxw2yD2ednEzUazq1XBt2Id77t5LE5tZVwkpRGDT5b9J0nQnr9zfzCOALXb2hQQGBPkMVyNNTO24pW1UC6Uda3B86LLYA02Jgy4G9DiT6KsutR3pSXO8AZFOlcmAEHbSSX9A8FAHaL.... etc.

我还需要做些什么来解决这个问题吗?

最佳答案

所以我的问题是我真的有点傻,cookie 的实现效果很好,但有时我会在 cookie 中塞入过多的东西并将其推到超过 4K cookie 限制。

这意味着我看到了一些不一致的行为,有时 cookie 工作得很好(cookie < 4K),而对于某些搜索词,太多的内容被写入 cookie,这意味着 cookie 从未创建或它是不会覆盖现有的 cookie。

所以是的,我的错,但认为这个答案可能会帮助像我一样愚蠢的人试图将世界存储在 cookie 中..

好的,我要去写一个 session 提供者。

关于c# - Nancyfx Request.Session 不持有 AJAX 帖子的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999056/

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