2013-07-24 64 views
0

這裏在我的代碼中,我將json格式的用戶名和密碼提交給restful service get方法。作爲回報,此方法返回json對象,我無法在jquery的兩個文本框中顯示該對象。在jquery中打印json對象的值

這是我的jsp頁面:

<script> 
$(document).ready(function() { 
    $("#btnSubmit").click(function() { 
     var uname = $("#uname").val(); 
     var pwd = $("#pwd").val(); 
     authenticate(uname, pwd); 
    }); 
}); 

//authenticate function to make ajax call 
function authenticate(uname, pwd) { 

    $.ajax 
    ({ 
     type: 'GET', 
     //the url where you want to sent the userName and password to 
     url: 'REST/WebService/GetLogin', 
     dataType: 'json', 
     async: false, 
     //json object to sent to the authentication url 
     data:{'uname': uname, 'pwd': pwd }, 

     error:function() 
     { 
      alert("unsuccessfull"); 
     }, 
     success:function(server_response) 
     { 
      $('#message').text(server_response.message); 
      $('#lastname').text(server_response.lastname); 
      alert("successfull"); 
     } 

    }); 
} 
</script> 

<input type="text" id="message"></input><br/> 
<input type="text" id="lastname"></input><br/> 

UserName:<input type="text" name="uname" id="uname"/><br/> 
Password:<input type="text" name="pwd" id="pwd"/><br/> 
<input type="submit" name="btnSubmit" id="btnSubmit" value="LogIn"/> 

我的寧靜get方法:

@Path("/WebService") 
    public class LoginService{ 
@GET 
@Path("/GetLogin") 
@Consumes("application/json") 
@Produces("application/json") 


public String loginFeed(@QueryParam("uname") String uname,@QueryParam("pwd") String pwd) 
{ 
    String feeds = null; 

    try 
    { 
     ArrayList<FeedObjects> feedData = null; 
     ProjectManager projectManager= new ProjectManager(); 
     feedData=projectManager.GetLogin(uname, pwd); 

     feeds=FeedTransformer.UserFeed(feedData); 
     System.out.println("inside"); 

    } 
    catch (Exception e) 
    { 
     System.out.println("error"); 
    } 
    return feeds; 

} 

這飼料是JSON對象的形式。

+0

你會得到什麼,而不是例外的結果?任何錯誤?我建議使用Firefox插件「Firebug」,它允許你分析網絡通信。這樣你就可以在Firebug中看到你的JSON結果。你的服務器部分使用什麼標題?如果它不是JSON,你可能要告訴jQuery結果將以JSON格式,或者你可能想使用'var server_message_json = $ .parseJSON(server_message); **編輯:**只是注意到你實際上**確實**提交數據類型。無論如何,螢火蟲可能會讓你免於許多充滿頭痛的睡眠之夜。 –

+0

我的迴應是在JSON中從安寧的服務實現,即@Produces(「application/json」) – shanky

回答

0

在成功:選項,你應該在你的瀏覽器中使用內置的控制檯和添加以下內容:

console.log(server_response); //this bad boy will tell you whats up 

如果這還不能讓你在任何地方,然後還要檢查在控制檯窗口中的網絡選項卡看腳本是否失敗。

而且,我不太知道,如果它很重要,但我總是在URL中的斜槓開始只是爲了安全起見:

url: '/REST/WebService/GetLogin', 

嘗試序列化的數據,而不是手動也許創建字符串:

data: $('TARGET_YOUR_FORM').serialize() 
+0

也在做console.log我的JSON格式正確顯示爲[{「message」:「哇」,「lastname」:「ri 「}],現在我不知道如何解析它在客戶端 – shanky

+0

這很奇怪。您是否可以嘗試打印響應而無需明確設置標題?我使用PHP,如果我沒有設置標題信息,那麼它會向瀏覽器提供文本/ html,但是我的AJAX調用仍然會將它解析爲json字符串,因爲您也已將其設置爲json的dataType。另一個想法是,你的jQuery版本甚至是你的瀏覽器可能存在一個錯誤?我正在使用jQuery 1.10.2。 – MonkeyZeus

+0

我已經指定javascript源代碼爲http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js – shanky