JQuery ajax成功范围

时间:2014-04-10 06:24:50

标签: 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 += '<select class="inputTextStyle selectAnswerToQuestion">';
        $.map(data.d, function (item) {
            htmlString += '<option value="' + item.QuestionId + '">' + item.QuestionContent + '</option>';

        });
        htmlString += '</select>';


    },
    error: function (result) {

    }

});

return htmlString;

htmlString没有返回任何内容。 虽然如果我console.log item,它会返回我的对象​​。

为什么?

1 个答案:

答案 0 :(得分:4)

Ajax意味着异步执行,一旦发出请求,控制将进一步移动。它不会等待返回ajax调用。
在您的示例中,将进行Ajax调用,并且当控制到达return语句success时,函数可能/可能未执行,因此它不返回任何内容。
您应该在success函数本身中执行所需的操作。

success: function (data) {
        //...........
        htmlString += '</select>';
        // Do the required things here instead of returning `htmlString`

    },

问题How do I return the response from an asynchronous call?