Ajax не публикует данные на классической странице asp

Я работаю с двумя классическими страницами asp. На первой странице у меня есть модальное диалоговое окно с кнопкой, при нажатии которой данные должны отправляться на вторую страницу asp.

Проблема в том, что я получаю обратный вызов «успех», когда он запущен, но эти данные не отправляются на вторую страницу.

Вот первая страница:

<script>
$(function() {
    $("#SendNegAdj").click(function() {
        $("#dialog").dialog({
            title:"Send Negative Adjustment",
            width: 400,
            height: 200,
            modal: true,
            buttons: {
                Send:
                function(){
                    $.post("http://test.asp",
                    {libid:"test"});
    console.log(libid);

                    //$(this).dialog('close');
                },
                Close:
                function(){
                    $(this).dialog('close');
                }
            }
        });
    });
})

And here is where the data is supposed to be posted to:

<% Dim test
test = Request("libid")
Response.Write test
%>

person bongo700    schedule 21.09.2015    source источник


Ответы (2)


Ваш код в первую очередь использует $.post() для выполнения POST-запроса с помощью Ajax. Если он получает успешный ответ, он игнорирует данные в этом ответе и запускает location.replace, чтобы сделать совершенно новый запрос GET к тому же URL-адресу.

Затем браузер отображает ответ на ответ GET.

Если вы хотите сделать запрос POST и отобразить результат в виде новой страницы, отправьте форму. Не используйте Аякс.

person Quentin    schedule 21.09.2015
comment
location.replace предназначен только для тестирования. Конечным результатом, который я хотел бы, является то, что данные отправляются на страницу без вызова обновления страницы. Шоуд упомянул об этом в своем посте. Извиняюсь. - person bongo700; 21.09.2015
comment
Затем вам нужно использовать полученные данные вместо использования location.replace. Как указано в этом ответе, location.replace отменит данные, полученные вами при выполнении запроса POST. - person Quentin; 21.09.2015
comment
Спасибо тебе за пояснение. Я думаю, что это решило мою проблему. - person bongo700; 21.09.2015

Вам нужно использовать Request.Form():

<% Dim test
  test = Request.Form("libid")
  Response.Write test
%>
person Praveen Kumar Purushothaman    schedule 21.09.2015