Khi khung của tôi phát triển, tôi quyết định chia thành các tệp, thay vì để nó trong tệp thiết kế chính. Tuy nhiên, bằng cách đó, sự trở lại của một hàm không trả về bất kỳ giá trị nào.Biến không được trả về từ chức năng AJAX
dữ liệu không trống - nếu tôi cảnh báo các giá trị trong tệp js chúng có ở đó!
Các chức năng:
1 chức năng trong tập tin .js (được bao gồm trước khi thực hiện)
var lock_get = 0;
function get_data(data, destination)
{
if (lock_get == 0)
{
lock_get = 1;
$.ajax({
type: "POST",
url: destination,
async: true,
data: data,
success: function(data)
{
lock_get = 0;
if (data)
{
return data;
}
}
});
}
};
Vì vậy, và đây là phần thi:
var test = get_data(data, destination);
notice(test);
và thử nghiệm là trống rỗng ... Tôi đã thử nhiều cách khác nhau để viết nhưng tôi đoán tôi đã hiểu sai về khả năng của js?
Thực hiện async: false. – Tuscan
@Tuscan No. [async: false không được dùng nữa và luôn luôn là một ý tưởng tồi] (http://api.jquery.com/jQuery.ajax/) –
có thể trùng lặp của [Cách trả lại phản hồi từ cuộc gọi Ajax?] (http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) –