2012-08-09 4 views
6

Wenn JSON-Objekt Abrufen erhält ich folgende Fehlermeldung:Syntaxerror: invalid Etikett beim Abrufen von JSON-Objekt

  1. Syntaxerror: invalid Label in Mozilla.
  2. Uncaught Syntaxerror: Unexpected token: in Chrome

Mein JSON-Objekt ist das Format unten dargestellt:

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

Code:

<!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

Sie jQuery sagen, erwarten JSONP, aber die Antwort sieht wie JSON, nicht JSONP. Die Antwort wird als JavaScript ausgewertet, aber da JSON kein gültiges JavaScript ist, erhalten Sie diesen Fehler. Sie müssen Ihren Server so einrichten, dass er JSONP zurückgibt. –

+1

mögliches Duplikat von [Invalid Label Error with JSON request] (http://stackoverflow.com/questions/2816653/invalid-label-error-with-json-request) –

+0

Kannst du bitte klarstellen, was du meinst, indem du den Server auf Return setzt? jsonp. Eigentlich habe ich beide versucht, json, jsonp. – paripurna

Antwort

3

Sie Code scheinen, wie diese

machen
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 versuchen, dies für die surl Sie

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

Verwenden ähnliche

0

verwenden ich genau das gleiche Problem hatte, als eine asmx Webservice (.NET) aufrufen.

ich gelöst es von meinem Rückgabewert mit eckigen Klammern umschließen etwa so:

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

und dann "EVALED" meine Rückkehr var wegen der lästigen 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) { 
      } 
     }); 
Verwandte Themen