Как я могу разделить значение переменной между классическим asp, .NET и javascript?

StackOverflow https://stackoverflow.com/questions/114260

Вопрос

Я создал IHttpHandler в .NET C#, который возвращает фрагменты HTML на классическую страницу asp.

Классическая страница asp взаимодействует с IHttpHandler через базовые HTTP-запросы с использованием ServerXMLHTTP в vbscript или Ajax-вызовах в JavaScript.

Теперь мне нужен способ поделиться переменной, которая у меня есть в vbscript, но не в javascript, с приложением .NET.

Во-первых, совместное использование переменной между классическим asp и .net не является проблемой, поскольку я могу просто добавить ее в http-запрос.Поскольку переменная недоступна в JavaScript, в этом случае я не могу этого сделать.

У меня возникла идея, что я мог бы кэшировать переменную в приложении .NET и использовать кэшированную версию для вызовов JavaScript.Но чтобы это работало, мне понадобится способ однозначно идентифицировать «клиент» в .NET...

Я попытался добавить System.Web.SessionState.IRequiresSessionState в мой HttpHandler и использовать SessionId, но это не сработало, потому что каждый вызов HttpHandler, похоже, получает новый идентификатор.

Правильно ли я думаю?Какие у меня здесь варианты?

Это было полезно?

Решение

Как насчет наличия скрытой переменной на странице, в которой вы можете хранить значение переменной из сценария vb на стороне сервера ваших страниц asp.

Затем вы можете использовать Javascript для запроса этой переменной для отправки обработчику Asp.Net через вызовы ajax.

Другие советы

Вы можете поместить свое значение в файл cookie, затем читать с помощью JavaScript и делать с ним что угодно, включая отправку его в запросе к приложению .net...

В итоге мое решение проблемы было следующим:

  1. Я отправляю переменные в свой веб-сервис вместе с обычным запросом ws.
  2. Я сохраняю значения переменных в хэш-таблице веб-сервиса и возвращаю хеш-ключ клиенту в скрытом объекте html (я использовал заголовок <meta> элемент для этого)
  3. В javascript я читаю это хеш-значение и присоединяю его к http-запросу в качестве значения заголовка.
  4. Когда веб-сервис видит этот хеш-ключ, он ищет соответствующие значения переменных в постоянной хэш-таблице.

Возможно, это не самое лучшее решение, но в моем случае оно работает хорошо...

Я бы тоже порекомендовал печенье.Вы также можете загрузить значение из базы данных, но это было бы излишним.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top