AJAX / ASP - простая задача, но я застрял? - PullRequest
0 голосов
/ 04 октября 2011

Я пытаюсь сделать простой вызов AJAX на странице ASP, который сбрасывает переменные сеанса и отправляет небольшое сообщение обратно по завершении. Я делаю это исключительно для изучения AJAX.

Пример получен с веб-сайта W3 Schools, но с тех пор, как я применил его к моей странице, я не могу заставить его работать, и он не выдает никаких ошибок, что раздражает, потому что я не могу отладить его.

Это мой JS, который вызывается, когда пользователь нажимает кнопку [Очистить форму]:

function resetSearchForm()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("notification").innerHTML=xmlhttp.responseText;
document.getElementById('notification').style.visibility = 'visible';
}
}
xmlhttp.open("GET","clearSearchData.asp",true);
xmlhttp.send();

document.searchFrm.searchStr.value='';
document.searchFrm.vertical.checked = true;
document.searchFrm.horizontal.checked = true;
document.getElementById('dateRange').selectedIndex = 0;
document.searchFrm.searchStr.focus();
}

И это ASP (clearSearchData.asp), который очищает мои переменные сеанса и пишет сообщение:

Response.Expires = -1
Session("search-str-boolean") = ""
Session("search-str-plain") = ""
Session("date-range") = ""
Session("date-from") = ""
Session("date-to") = ""
Session("specificDate") = ""
Session("peopleStr") = ""
Session("orientation") = ""

Response.Write "Form has been reset"

Кто-нибудь может увидеть, где я иду не так? Я давно на это смотрю и просто не вижу.

Сама функция работает, потому что обрабатывается последняя часть функции, бит, который очищает значения формы ... но ... вызов AJAX не происходит, потому что переменные сеанса по-прежнему содержат данные, а сообщение не ' т.

Большое спасибо заранее ...


ОБНОВЛЕНИЕ - - - - - - - - - - -

Теперь работает. Проблема заключалась в том, что я не включил полный URL-адрес страницы ASP. Спасибо за 'thedaian' (ниже) за указание на это

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Скорее всего, что-то не так со страницей, которую вы пытаетесь получить через AJAX.Проверьте, что такое xmlhttp.status, если это 404, то вы никогда не доберетесь до точки, где вы печатаете ответ AJAX.Убедитесь, что "clearSearchData.asp" доступен из того же каталога, что и ваш javascript.Это распространенная проблема, если ваш код JavaScript находится в отдельной папке от остальной части вашего сайта.Или просто введите полный URL-путь для "clearSearchData.asp", чтобы он определенно работал.

Что-то, на что следует обратить внимание, функция в xmlhttp.onreadystatechange (обычно) называется после заявлено в коде.В этом случае он вызывается после очистки и сброса полей формы поиска.

0 голосов
/ 04 октября 2011

Ajax-вызов не отправляет автоматически файл cookie сеанса. Это означает, что очищаемый сеанс - это не сеанс пользователя, а сеанс, созданный только для этого вызова ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...