Javascript jqueryajax成功范围
我有一行代码:Javascript jqueryajax成功范围,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一行代码: $.ajax({ url: "ViewQuiz.aspx/SetAllQuestionsByQuizId", type: "POST", contentType: "application/json; charset=utf-8", dataType: 'json', data: "{'quizId':'" + quizId + "'}", success: function (data) { htmlString
$.ajax({
url: "ViewQuiz.aspx/SetAllQuestionsByQuizId",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: "{'quizId':'" + quizId + "'}",
success: function (data) {
htmlString += '<select class="inputTextStyle selectAnswerToQuestion">';
$.map(data.d, function (item) {
htmlString += '<option value="' + item.QuestionId + '">' + item.QuestionContent + '</option>';
});
htmlString += '</select>';
},
error: function (result) {
}
});
return htmlString;
$.ajax({
url:“viewquick.aspx/SetAllQuestionsByQuizId”,
类型:“POST”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
数据:“{'quizId':'”+quizId+“}”,
成功:功能(数据){
htmlString+='';
$.map(数据.d,函数(项){
htmlString+=''+item.QuestionContent+'';
});
htmlString+='';
},
错误:函数(结果){
}
});
返回htmlString;
htmlString
没有返回任何内容。
虽然如果我console.log
该项
,它将返回我的对象
为什么?Ajax意味着异步执行,一旦发出请求,控制将进一步移动。它不会等待Ajax调用的返回。
在您的示例中,将进行Ajax调用,当控件到达
return
语句success
时,函数可能会执行,也可能不会执行,因此它不会返回任何内容。您应该在
success
函数本身中执行所需的操作
success: function (data) {
//...........
htmlString += '</select>';
// Do the required things here instead of returning `htmlString`
},
成功:函数(数据){
//...........
htmlString+='';
//在此处执行所需操作,而不是返回'htmlString'`
},
实时问题Ajax意味着异步执行,一旦发出请求,控制将进一步移动。它不会等待Ajax调用的返回。
在您的示例中,将进行Ajax调用,当控件到达
return
语句success
时,函数可能会执行,也可能不会执行,因此它不会返回任何内容。您应该在
success
函数本身中执行所需的操作
success: function (data) {
//...........
htmlString += '</select>';
// Do the required things here instead of returning `htmlString`
},
成功:函数(数据){
//...........
htmlString+='';
//在此处执行所需操作,而不是返回'htmlString'`
},
Realted question在“error”函数中添加一些控制台stmt,并验证它是否失败。它将输入“success”,并正确返回我的结果。您不能从这样的异步函数中返回。您发送的JSON无效。@adeneo:我正在寻找相同的问题。在“error”中添加一些控制台stmt函数并验证它是否失败。输入“success”并正确返回我的结果。您不能从这样的异步函数返回。您发送的JSON无效。@adeneo:我在寻找相同的问题。