![](/img/trans.png)
[英]Unable to get Java Response in Ajax with dataType: “jsonp” but dataType: “text” Works
[英]Unable to get value in Ajax response
接收請求的servlet-
Gson gson = new Gson();
JsonObject myObj = new JsonObject();
LoginBean loginInfo = getInfo(userId,userPwd);
//System.out.println("00000000-----------"+loginInfo.userId);
JsonElement loginObj = gson.toJsonTree(loginInfo);
if(loginInfo.getUserId() == "GUEST!"){
myObj.addProperty("success", false);
}
else {
myObj.addProperty("success", true);
}
myObj.add("login", loginObj);
System.out.println(":::::"+myObj.get("success"));
out.println(myObj.toString());
out.close();
這是js文件-----
function loadScript(url, callback)
{
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onreadystatechange = callback;
script.onload = callback;
head.appendChild(script);
}
loadScript("js/json2.js", myJSCode);
var myJSCode = $(document).ready(function() {
$("#loginForm").submit(function(e){
e.preventDefault();
});
$("#login").click(function(e){
dataString = $("#loginForm").serialize();
var id = $("input#id").val();
var pwd = $("input#pwd").val();
dataString = "id=" + id + "&pwd="+pwd;
$.ajax({
type: "POST",
url: "login",
data: {
id : id,
pwd : pwd
},
dataType: "json",
success: function( data, textStatus, jqXHR) {
if(data.success){
$("#ajaxResponse").html("");
$("#ajaxResponse").append("<b>Welcome</b> " + data.login.id + "<br>");
//alert("#ajaxResponse" + data.login.id);
alert(data['id']);
alert(data['pwd']);
}
else {
$("#ajaxResponse").html("<div><b>Login Credentials are invalid!</b></div>");
}
}
});
如果我要使用1個元素(即“ id”),則會得到ajaxResponse,但是當我嘗試同時獲取兩個響應時,我會得到未定義的值。 我嘗試使用data.login.id和data [id],但無法獲得所需的輸出。 任何幫助將不勝感激。 即使我嘗試了JSON.Stringify()。
$.ajax({
type: "POST",
url: "login",
data: {
id : id,
pwd : pwd
},
...
傳遞給ajax的數據與in中的數據不同
success: function( data, textStatus, jqXHR) {
if(data.success){
...
在這種成功中,回調數據是服務器的響應,並且基於服務器返回給您的數據,回調數據具有不同的(或相同的結構)。 如果要打印來自ajax調用的值,則只需使用id
$("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");
我看到您正在嘗試使用“ data.login.id”,您能否檢查響應中數據的真實結構? 添加console.log(data)或在斷點處添加回調,或簡單地添加調試器; 代碼,它將為您停止該行中的代碼,而無需添加斷點。
謝謝亞歷克斯。 我給你+1
$("#ajaxResponse").append("<b>Welcome</b> " + id + "<br>");
雖然在我使用時可以使用:
data: {
id: $('#id').val(),
pwd: $('#pwd').val()
},
沒有將我的代碼更改為這一行,該行將無法正常工作。 謝謝你的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.