2013-11-15 2 views
2

Я довольно новичок в Нэнси, надеюсь, я просто делаю что-то глупое здесь. У меня есть служба Nancy, который я отправляю данные нравится так:Nancyfx Request.Session не имеет значений на посту AJAX

$.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» печенье присутствует, когда я проверить страницу после того, как она возвращается.

Однако, если я тогда F5 на странице, элементы сеанса снова нульны на сервере.

Я исключаю, что это перекрестная публикация, поскольку все это в одном домене.

Это может быть вещь AJAX? Кажется маловероятным, поскольку это кажется довольно стандартным. Или вы не можете установить его на POST? Если это так?

Если кто-то может помочь мне бы бесконечно благодарен, как в противном случае я буду вынужден вернуться обратно к написанию этого в WCF, которая заставит меня бросить себя из окна :)

Спасибо большое.

Редактировать

  • Открыть новое окно инкогнито в темэ я попал домой страницу, не гомосексуалист печенья присутствует (что правильно)
  • Введите слово для поиска, который вызывает снова и AJAX пост и захватывает JSON, также выводит список строк в Nancy Session
  • Check печенье, Nancy один появился как так и значение сессии правильно на пост обратно:

    npTBnqPp99nLd5fU0%2btJbq%2fY%2bdf2UFWTaq5D28Az7Jw%3dzF8cIHNxTWX399sbmowjheho2S29ocpKs1TXD51BrbyPPNCeLfAcYqWhkRHqWdwKJNED5kuspllIjhI5rf2W6NKtf8xo68BlF5eLLgJxMtAxw2yD2ednEzUazq1XBt2Id77t5LE5tZVwkpRGDT5b9J0nQnr9zfzCOALXb2hQQGBPkMVyNNTO24pW1UC6Uda3B86LLYA02Jgy4G9DiT6KsutR3pSXO8AZFOlcmAEHbSSX9A8FAHaL ... etc. 
    
    • Я тогда искать другой термин поиска, который вызывает этот бит кода: --Session.DeleteAll();
    • Ненси сессия вновь заполняется новыми данными и возвращает обратно в браузер

Однако в данный момент куки не был обновлен с новым значением оно еще ниже:

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

Есть ли что-нибудь еще, чтобы решить эту проблему?

+0

Я знаю, что вы говорите, что вы исключили CORS, но вы, возможно, захотите посмотреть на это другое сообщение и посмотреть, не искроет ли оно какое-либо понимание - http://stackoverflow.com/questions/2870371/why-is-jquerys -ajax-method-not-send-my-session-cookie –

+1

Иначе присоединяйтесь к нам в комнате NancyFX JabbR и поговорите с разработчиками и другими пользователями https://jabbr.net/#/rooms/nancyfx –

ответ

0

Итак, моя проблема была в том, что я был немного глупым, реализация файлов cookie работает хорошо, однако были случаи, когда я слишком много набивал в cookie и толкал его по пределу cookie 4K.

Это означало, что я видел некоторое непоследовательное поведение, когда иногда cookie работал красиво (cookie был < 4K), где, как и для некоторых поисковых терминов, в файл cookie было записано слишком много, что означало, что cookie никогда не создавался или он не переписывал существующий файл cookie.

Так что да, моя вина, но думали, что этот ответ может помочь кому-то, как глупо, как и я, пытаясь сохранить мир в печенье ..

Right Я уезжаю, чтобы написать поставщик сеанса.

Смежные вопросы