JQuery AJAX звонки на сайте MVC не разделяет вошли в сеанс - PullRequest
0 голосов
/ 16 ноября 2011

как в заголовке

мы стреляем

$('#id').load('someUrl', function(){/*some stuff*/});

Но, похоже, его передают в форму входа, потому что он не вошел в систему?!

Пользователь вошел в систему. Это нормально?

1 Ответ

0 голосов
/ 16 мая 2012

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

Сайт изначально размещался на localhost без псевдонима, поэтому у меня был рабочий URL, например localhost / controller / action.

Затем я переместил сайт под псевдонимом - таким образом, URL сайта был localhost / alias. На этом этапе две странные вещи были удовлетворены НЕКОТОРЫМИ запросами ajax: - запросы были запрошены для аутентификации (веб-сайт использовал Windows-аутентификацию) - сеанс запросов отличался от сеанса на странице, на которой был запущен запрос

Проблема заключалась в том, что некоторые URL были жестко закодированы в коде js. Таким образом, в коде вызовов ajax у нас был код типа * url: '/controller/action', и этот URL не учитывал псевдоним, под которым веб-сайт размещался в IIS.

Решением было объявить переменную js на странице и присвоить ей URL-адрес, созданный правильным образом, с помощью Url.Action, а затем использовать переменную в вызове ajax: Страница:

<script type="text/javascript">
    var ajaxUrl = '@Url.Action("actionname", "controllername")';
</script>

Файл JS:

    $.ajax({
                    type: 'POST',
                    url: ajaxUrl,
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...