私はナンシーにまったく慣れていないので、ここでばかげたことをしているだけだと思います. 私はデータを投稿しているナンシーサービスを持っています:
$.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();
}
}
これらはセッション変数を設定しているようで、戻った後にページを調べると「_nc」Cookie が存在します。
ただし、ページを F5 キーで押すと、セッション アイテムはすべてサーバーで再び null になります。
すべて同じドメイン上にあるため、クロスサイト投稿は除外しました。
これはAJAXのことでしょうか?これは非常に標準的なことのように思われるため、ありそうにありません。または、POSTに設定できませんか?もしそうなら、これを回避する方法はありますか?
誰かが助けてくれたら、私は永遠に感謝します。そうでなければ、これをWCFで書くことに戻らなければならず、窓から身を投げ出すことになります:)
どうもありがとう。
編集
- Chome で新しいシークレット ウィンドウを開きます ホームページにアクセスしましたが、ナンシー Cookie は存在しません (これは正しいです)
- コールバックする検索語を入力し、AJAX が投稿して JSON を取得し、ナンシー セッションで文字列のリストをポップします。
Cookie を確認してください。ナンシーな Cookie がそのように表示され、セッション値はポストバックで正しいです。
npTBnqPp99nLd5fU0%2btJbq%2fY%2bdf2UFWTaq5D28Az7Jw%3dzF8cIHNxTWX399sbmowjheho2S29ocpKs1TXD51BrbyPPNCeLfAcYqWhkRHqWdwKJNED5kuspllIjhI5rf2W6NKtf8xo68BlF5eLLgJxMtAxw2yD2ednEzUazq1XBt2Id77t5LE5tZVwkpRGDT5b9J0nQnr9zfzCOALXb2hQQGBPkMVyNNTO24pW1UC6Uda3B86LLYA02Jgy4G9DiT6KsutR3pSXO8AZFOlcmAEHbSSX9A8FAHaL ... etc.
- 次に、このコードを呼び出す別の検索用語を検索します。 --Session.DeleteAll();
- nancy セッションに新しいデータが再入力され、ブラウザに戻ります
ただし、この時点では Cookie は新しい値で更新されておらず、以下のようになっています。
npTBnqPp99nLd5fU0%2btJbq%2fY%2bdf2UFWTaq5D28Az7Jw%3dzF8cIHNxTWX399sbmowjheho2S29ocpKs1TXD51BrbyPPNCeLfAcYqWhkRHqWdwKJNED5kuspllIjhI5rf2W6NKtf8xo68BlF5eLLgJxMtAxw2yD2ednEzUazq1XBt2Id77t5LE5tZVwkpRGDT5b9J0nQnr9zfzCOALXb2hQQGBPkMVyNNTO24pW1UC6Uda3B86LLYA02Jgy4G9DiT6KsutR3pSXO8AZFOlcmAEHbSSX9A8FAHaL.... etc.
これを解決するために他に何かする必要がありますか?