2011-12-12 55 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请求。