JQuery AJAX Post - передайте переменную и перейдите по URL - PullRequest
5 голосов
/ 13 апреля 2011

Я разрабатываю небольшую головоломку. Пользователи нажимают на блоки картинки и угадывают, что это за картинка. Я также считаю, сколько блоков они открыли перед отправкой. Я использую следующий код JQuery AJAx в VBScript / ASP

dataString  = 'totalClick=' + totalClick ;

$.ajax({  
    type: "POST",  
    url: "puzzle3.asp",  
    data: dataString,  
    success: function() {
        alert('totalClick' + totalClick + "data: " + dataString );
        window.location = "puzzle3.asp";
    }  
});

Моя проблема в том, что я хочу получить значение переменной 'totalClick' на странице 'puzzle3.asp'. После того, как я перейду к «Puzzle3.asp», я хочу использовать его там, чтобы решить некоторые другие вещи. Но здесь, как только я перехожу к puzzle3.asp через AJAX, я теряю значение переменной POST 'totalClick'.

Есть ли какой-нибудь способ, которым я могу использовать POST, перейти на следующую страницу и использовать там переменную vlaue. Так же, как установка переменной сеанса, но я понимаю, что не могу назначить переменную сеанса с помощью JS.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

0 голосов
/ 22 июня 2013

Попробуйте сохранить переменные с помощью POST, загрузите новую страницу и получите переменную с помощью AJAX, например:

Страница A:

$.ajax({
    type: "POST",
    url: "puzzle3.asp",
    data: dataString,
    success: function() {
        alert('totalClick' + totalClick + "data: " + dataString );
        window.location = "puzzle3.asp";
    }
});

Страница B (puzzle3.asp):

/**
 * No need to wait for load() event, just generate a
 * global variable with the number of clicks
 */
(function($){
    $.ajax({
        type: "GET",
        url: "read_clicks.asp",
        dataType: "json",
        success: function (data) {
            // Use any global variable, as needed
            $.totalClicks = data.clicks || 0;
        }
    });
}(jQuery));
0 голосов
/ 31 декабря 2017

Вы можете использовать JSON.stringify:

var ssnData="123";
$.ajax({
    type: "POST",
    contentType: "application/json;charset=utf-8",
    data: JSON.stringify({ 'SSNdata': ssnData }),
    url: 'home/data',
    dataType: 'json',
    success: function (cicos) {
        //cicos is your response data
    }
});
0 голосов
/ 13 апреля 2011

из jquery doc:

dataObject, String Данные для отправки на сервер.Он преобразуется в строку запроса, если это еще не строка.Он добавляется в URL для GET-запросов.См. Параметр processData, чтобы предотвратить эту автоматическую обработку.Объект должен быть парой ключ / значение.Если значение является массивом, jQuery сериализует несколько значений с одним и тем же ключом на основе значения традиционного параметра (описанного ниже).

Вы пытались вручную поместить вашу переменную в строку запроса?

$.ajax({
    type: "POST",
    url: "puzzle3.asp?totalClick=" + totalClick,
    data: dataString,
    success: function() {
        alert('totalClick' + totalClick + "data: " + dataString );
        window.location = "puzzle3.asp";
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...