2012-08-09 15 views
6

Po pobraniu obiektu JSON I pojawia się następujący błąd:SyntaxError: nieprawidłowy etykieta podczas pobierania JSON obiektu

  1. SyntaxError: nieprawidłowy etykiet w Mozilli.
  2. Uncaught SyntaxError: Nieoczekiwany token: w Chrome

Moje JSON obiektu jest format przedstawiony poniżej:

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

Kod:

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

powiesz jQuery oczekiwać JSONP, ale odpowiedź wygląda jak JSON, a nie JSONP. Odpowiedź jest oceniana jako JavaScript, ale ponieważ JSON nie jest prawidłowym kodem JavaScript, pojawia się ten błąd. Musisz skonfigurować serwer, aby zwrócił JSONP. –

+1

możliwy duplikat [błąd nieprawidłowej etykiety z żądaniem JSON] (http://stackoverflow.com/questions/2816653/invalid-label-error-with-json-request) –

+0

Czy możesz wyjaśnić, co masz na myśli, ustawiając serwer, aby zwracał jsonp. Właściwie próbowałem zarówno json, jsonp. – paripurna

Odpowiedz

3

można dokonać kod wydaje się tym

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 spróbować tego dla SURL używasz

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

używać jak to

0

miałem identyczny problem podczas wywoływania usługi ASMX internetowej (NET).

postanowiłem go załączając mój wartości zwracanej z kwadratowych nawiasach tak:

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

a następnie „evaled” mojego powrotu var powodu nieznośnego 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) { 
      } 
     }); 
Powiązane problemy