2012-08-09 4 views
6

を取得中には、私は次のエラーが表示されますにSyntaxError:無効なラベルJSONオブジェクトを取得する場合JSONオブジェクト

  1. にSyntaxError:Mozillaの中に無効なラベル。
  2. キャッチされないでSyntaxError:予期しないトークン:クローム

に私のJSONオブジェクトは以下の形式です:

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

コード:

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

あなたがjQueryのを教えてJSONPを期待しますが、応答はJSONPではなくJSONのように見えます。応答はJavaScriptとして評価されますが、JSONは有効なJavaScriptではないため、そのエラーが発生します。 JSONPを返すようにサーバーを設定する必要があります。 –

+1

[JSONリクエストで無効なラベルエラーが発生しました]の複製があります(http://stackoverflow.com/questions/2816653/invalid-label-error-with-json-request) –

+0

返信するサーバーを設定することでjsonp。実際に私は両方のjson、jsonpを試しました。 – paripurna

答えて

3

あなたは、コードを作ることができ、この

のように思えます
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

ねえ、あなたがASMX Webサービス(.NET)を呼び出すときに、私は正確に同じ問題を抱えていたこの

0

よう

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

使用を使用しているSURLのためにこれを試してみてください。

私はそうのような角括弧で私の戻り値を囲むことによってそれを解決:

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

、その後ので厄介なのDのparamの私のリターンVAR「をevaled」:

$.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) { 
      } 
     }); 
関連する問題