2012-08-09 14 views
6

Quando recuperato oggetto JSON Ricevo il seguente errore:SyntaxError: etichetta non valido durante il recupero JSON oggetto

  1. SyntaxError: etichetta valida nel Mozilla.
  2. Uncaught SyntaxError: token imprevisto: in Chrome

mio oggetto JSON è il formato indicato di seguito:

{ 
    "userName" : "clevermeal835", 
    "userRole" : "Participant", 
    "userAccountStatus" : "Active" 
} 

Codice:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<script src="Scripts/jquery-min.js"></script> 
<script src="Scripts/jquery_validate.js"></script> 
<script> 
$(document).ready(function() { 
    loadLatestTweet(); 
}); 

function loadLatestTweet(){ 
var xhr = new XMLHttpRequest(); 
var uid = "clevermeal835"; 
var pwd = "Welcome_1"; 
var userType = "participant"; 
    var surl =  'http://localhost:8080/RESTlet_WS/MobiSignIn/{"userName":"'+uid+'","password":"'+pwd+ '","userType":"'+userType+'"}&callback=?'; 

    var jqxhr = $.getJSON(surl, function() { 
     alert("success"); 
    }).success(function() { alert("second success"); }).error(function() { alert("error"); }).complete(function() { alert("complete"); }); 
    jqxhr.complete(function(){ alert("second complete"); }); 
} 
</script> 
</head> 
<body> 
<input id="jsonpbtn2" type="submit" value="button" /> 
</body> 
</html> 
+2

Dite jQuery per aspettatevi JSONP ma la risposta sembra JSON, non JSONP. La risposta viene valutata come JavaScript, ma dal momento che JSON non è un JavaScript valido, si ottiene questo errore. Devi configurare il tuo server per restituire JSONP. –

+1

possibile duplicato di [Errore etichetta non valido con richiesta JSON] (http://stackoverflow.com/questions/2816653/invalid-label-error-with-json-request) –

+0

puoi chiarire cosa intendi impostando il server per tornare JSONP. In realtà ho provato entrambi json, jsonp. – paripurna

risposta

3

è possibile rendere il codice sembrare questo

var params = { "Username": UserNameValue,"Password": PassValue}; 


     $.ajax({ 
      type: "POST", 
      url: "http://localhost:8080/RESTlet_WS/MobiSignIn/", 
      contentType: 'application/json', 

      data: JSON.stringify(params), 
      dataType: 'json', 
      async: false, 
      cache: false, 
      success: function (response) { 


      }, 
      error: function (ErrorResponse) { 


      } 
0

Hey provare questo per il Surl si utilizza

var params = encodeURIComponent('{"userName":"'+uid+'","password":"'+pwd+ '","userType":"'+userType+'"}'); 
var surl = 'http://localhost:8080/RESTlet_WS/MobiSignIn?params='+params+'&callback=' 

Usa come questo

0

ho avuto lo stesso problema quando si chiama un servizio ASMX web (NET).

ho risolto che racchiudendo il mio valore di ritorno con parentesi quadre in questo modo:

return @"[ {{ ""status"" : ""OK"", ""message"" : ""Success !!!"" }} ]"; 

e poi "EVALED" il mio ritorno var a causa del fastidioso d param:

$.ajax({ 
      type: "POST", 
      url: 'http://www.example.com/', 
      contentType: 'application/json; charset=utf-8', 
      data: '{name: "' + vName + '", target: "' + vTarget + '", phone: "' + vPhone + '", timeframe: ' + true + '}', 
      dataType: 'json', 
      success: function (msg) { 

       jsonMsg = eval(msg.d); 

       alert(jsonMsg.status); 
       alert(jsonMsg.message); 
      }, 
      error: function (xhr, msg) { 
      } 
     }); 
Problemi correlati