this.encryptUserObject = function(userObj){
var newpassword = [];
var urlPost = '';
console.log(password);
urlPost = 'http:mysite.com/root/custome.svc/Encrypts'+ '/?' + "Phrase=test";
$.ajax({
url:urlPost,
type:"GET",
dataType:"json",
contentType: "application/json",
success: function(response){
return response;
},
error:function(res){
console.log("Bad thing happend! " + res.statusText);
}
});
}
这是我班上的方法之一。 cosole.log
方法中的success
正在运行,显示结果(加密文本中的新密码),但控制台newpassword
中的$.ajax
打印没有值。
知道可能导致这种情况的原因。
答案 0 :(得分:0)
你的console.log在ajax成功之前运行。要检查变量,请将其分配给全局范围(仅用于测试):
this.encryptUserObject = function(userObj){
var newpassword = [];
var urlPost = '';
console.log(password);
urlPost = 'http:mysite.com/root/custome.svc/Encrypts'+ '/?' + "Phrase=test";
$.ajax({
url:urlPost,
type:"GET",
dataType:"json",
contentType: "application/json",
success: function(response){
window.newpassword = response; //here is update
console.log(response);
},
error:function(res){
console.log("Bad thing happend! " + res.statusText);
}
});
//console.log("this is ur new password " + newpassword);
}
然后您可以输入浏览器控制台:
window.newpassword
如果您想通知用户有关密码的信息,请使用success
方法,而不是外部!
答案 1 :(得分:0)
控制台日志记录在ajax成功之前执行,如果要在设置密码后使用密码,只需将其作为参数传递给sucess回调中的函数
this.encryptUserObject = function(userObj){
var newpassword = [];
var urlPost = 'http:mysite.com/root/custome.svc/Encrypts'+ '/?' + "Phrase=test";
newpassword = $.ajax({
url:urlPost,
type:"GET",
dataType:"json",
contentType: "application/json",
success: function(response){
return response;
},
error:function(res){
console.log("Bad thing happend! " + res.statusText);
}
});
console.log(newpassword);
}