Javascript 如何从jquery get请求中获取返回值?
我想这样做:Javascript 如何从jquery get请求中获取返回值?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想这样做: function blabla(); var check = blabla(); if(check == 1) 但是在我的blabla函数中,我有一个Get请求和一个回调,但无法将返回值设置为blablas返回值 var checkemail = 0; $.get("bla.aspx", { day: "friday" }, function(data) { console.log(dat
function blabla();
var check = blabla();
if(check == 1)
但是在我的blabla函数中,我有一个Get请求和一个回调,但无法将返回值设置为blablas返回值
var checkemail = 0;
$.get("bla.aspx", {
day: "friday"
},
function(data) {
console.log(data);
checkemail = data;
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') {
问题是数据变量没有分配checkemail变量。为什么不呢 能否将
if(check==1){…}
代码移到回调中?能否将if(check==1){…}
代码移到回调中?关于
function checkMail(data) {
if (data == '1') {
...
}
}
$.get("bla.aspx",
{ day: "friday" },
function(data) {
console.log(data);
checkMail(data);
}
);
那……呢
function checkMail(data) {
if (data == '1') {
...
}
}
$.get("bla.aspx",
{ day: "friday" },
function(data) {
console.log(data);
checkMail(data);
}
);
这是一个AJAX请求,A代表异步,这意味着您的代码不会停止并等待响应,除非您这样说
$.get
只是$.ajax
的包装器。如果希望请求同步,则需要使用$.ajax
,如下所示:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
也可以使用回调函数检查数据。回调函数是您在success属性中定义的函数。此函数在请求完成后调用。因此,您可以这样做:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
如果/*do something*/
很长,您可以将其放入单独的函数中,然后将函数调用放入get请求,如下所示:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
这是一个AJAX请求,A代表异步,这意味着您的代码不会停止并等待响应,除非您这样说
$.get
只是$.ajax
的包装器。如果希望请求同步,则需要使用$.ajax
,如下所示:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
也可以使用回调函数检查数据。回调函数是您在success属性中定义的函数。此函数在请求完成后调用。因此,您可以这样做:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
如果/*do something*/
很长,您可以将其放入单独的函数中,然后将函数调用放入get请求,如下所示:
var checkemail = 0;
$.ajax({
async: true,
url: "bla.aspx",
data: {day:"friday"},
dataType: text,
success: function(data){
console.log(data);
checkmail = data;
}
});
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
$.get("bla.aspx", {
day: "friday"
},
function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
);
var do_something = function(checkmail) {
console.log("checkemail: " + checkemail);
if (checkemail == '1') { /* do something */ }
}
$.get("bla.aspx", {
day: "friday"
},
do_something // note the missing `()`, it must be like this
);
我做了一些这样的代码,效果很好
$.get("/url.php", function(reply){
alert(reply);
});
也许您需要检查是否:
哦,我错过了一些东西。最好用alert()语句替换函数体,以确保不会出现任何键入错误。如果您已经尝试过,请忽略。我编写了一些类似的代码,效果很好
$.get("/url.php", function(reply){
alert(reply);
});
也许您需要检查是否:
哦,我错过了一些东西。最好用alert()语句替换函数体,以确保不会出现任何键入错误。如果您已经尝试了此操作,请忽略。但是我必须在回调中包含大约100行代码。我认为这很难看。你可以将代码移动到一个单独的函数中,就像john_doe和我建议的那样。但是我必须在回调中有大约100行代码。我觉得这很难看。你可以把代码移动到一个单独的函数,就像我和john_doe建议的那样。