如何让jQuery执行同步而非异步的Ajax请求?我有一个JavaScript小部件,它提供标准的扩展点。其中之一就是beforecreate功能。它应该返回false以防止创建项目。我使用jQuery在这个函数中添加了一个Ajax调用:beforecreate: function (node, targetNode, type, to) {
jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
function (result) {
if (result.isOk == false)
alert(result.message);
});}但我想阻止我的小部件创建项目,所以我应该返回false母函数,而不是回调。有没有办法使用jQuery或任何其他浏览器中的API执行同步AJAX请求?
4 回答
aluckdog
TA贡献1847条经验 获得超7个赞
优秀解决方案 我注意到当我尝试实现它时,如果我在success子句中返回一个值,那么它返回为undefined。我必须将它存储在变量中并返回该变量。这是我提出的方法:
function getWhatever() { // strUrl is whatever URL you need to call var strUrl = "", strReturn = ""; jQuery.ajax({ url: strUrl, success: function(html) { strReturn = html; }, async:false }); return strReturn;}
添加回答
举报
0/150
提交
取消