Mam ten kod:

    $.ajax({
        type: 'get',
        url: 'https://......./confirma.asp',
        data: $('.newform').serialize(),
        dataType: 'jsonp',
        beforeSend: function () {
            $('.ajax-loader').slideToggle();
        },
        success: function (resposta) {
            alert(resposta); // not work 
            $('.ajax-loader').slideToggle();
        }
    }); 

Dostaję tę odpowiedź z Ajax Get (Firebug):

CODRET=1&MSGRET=JA CONFIRMADA

Jak dostaję te wartości? Na przykład:

resposta['CODRET'];

Lub

resposta.CODRET

Ponieważ potrzebuję ustawienia w innej funkcji jQuery ();

2
Patrick Maciel 12 grudzień 2011, 20:27

3 odpowiedzi

Najlepsza odpowiedź

To wygląda jak ciąg zapytania. Oto zmodyfikowana wersja Ta odpowiedź:

function parseQueryString(qs) {
    var urlParams = {};
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = qs.substring(1);

    while (e = r.exec(q))
       urlParams[d(e[1])] = d(e[2]);
    return urlParams;
}

console.log(parseQueryString("CODRET=1&MSGRET=JA CONFIRMADA"));

http://jsfiddle.net/gphyj/

3
Community 23 maj 2017, 10:10

Prawdopodobnie powinieneś ich podzielić:

$.ajax({
    type: 'get',
    url: 'https://ecommerce.redecard.com.br/pos_virtual/confirma.asp',
    data: $('.newform').serialize(),        
    beforeSend: function () {
        $('.ajax-loader').slideToggle();
    },
    success: function (data) {
        var codret = data.split('&')[0].split('=')[1]; 
        var msgret = data.split('&')[1].split('=')[1];             
        $('.ajax-loader').slideToggle();
    }
});
0
Felix Kling 12 grudzień 2011, 16:50

Jeśli nie możesz zmienić tego kodu serwera

  function QueryStringToJsonObject(queryString)
    {
        var queries = {};
        decodeURIComponent(queryString).replace(/([^=]+)=([^&]+)/g,
            function(all, key, value) {
                queries[key.replace(/^&/,'')] = value;
            }
        );
        return queries;
    }

I wtedy:

QueryStringToJsonObject(responseText) ["CODRET"] //1

W przeciwnym razie rozważ zwrot JSON do żądania HTTP.

0
Alex Turpin 12 grudzień 2011, 19:11