2011-12-12 25 views
2

我有這樣的代碼:HTML內容來自AJAX值GET

$.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(); 
     } 
    }); 

我從阿賈克斯得到這個響應(螢火蟲):

CODRET=1&MSGRET=JA CONFIRMADA 

如何我得到這個值?例如:

resposta['CODRET']; 

resposta.CODRET 

因爲我需要在另一個JQuery的功能設置();

+1

'CODRET = 1&MSGRET = JA CONFIRMADA'是** **迴應你?這似乎很奇怪,尤其是當你期待JSONP作爲迴應時。 –

+0

所以你得到一個查詢字符串作爲響應,你需要反序列化? – pimvdb

+0

使用此語法'resposta ['CODRET'];'你需要將對象的響應轉換爲JSON。 – Kakashi

回答

3

嗯,看起來像一個查詢字符串。這裏是this answer修改後的版本:

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/

+0

我試過使用這個函數,但是在接收到響應HTML **後**沒有任何效果。我不知道爲什麼。 –

+0

@PatrickMaciel,有沒有任何錯誤?你需要發佈你做了什麼 –

+0

我貼我的'php'文件的功能,但我不能發送「resposta」(響應),到功能,換句話說,你可能發揮作用的工作**,但我不能使用該因爲當我收到服務器的響應,沒有什麼更多的工作**,其同樣,當你寫的'「echo''而不是'」 return''('echo'打破了阿賈克斯,我想..這是相同的情況下,理解我?) - 對不起,我的英語(_在一刻我把我的代碼,因爲它._) –

0

或許你應該將它們分割:

$.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

如果你不能改變服務器代碼做到這一點

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

然後:

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

否則考慮回到JSON到HTTP請求。