Короткий ответ, вы не можете, первый A в AJAX означает Асинхронный, что означает, что запрос все еще выполняется, когда вы добираетесь до оператора return.
Вы можете сделать это с синхронным (не асинхронным) запросом, но обычно это Плохая вещь
Что-то вроде следующего: нужно вернуть данные.
function getPrice(productId, storeId) {
var returnHtml = '';
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: false,
cache: false,
dataType: "html",
success: function(html){
returnHtml = html;
}
});
return returnHtml;
}
НО
Если вам действительно не нужно иметь возможность сразу же использовать возвращаемое значение из теста, вам будет намного лучше, если передать обратный вызов в тест. Что-то вроде
function getPrice(productId, storeId, callback) {
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: true,
cache: false,
dataType: "html",
success: function(html){
callback(html);
}
});
}
//the you call it like
getPrice(x,y, function(html) {
// do something with the html
}
Редактировать Блин, вы, ребята, быстрее говорите то, что я сказал: -)