Moh*_*ril 32 variables ajax jquery
我使用ajax时遇到了一些问题.
如何将ajax的所有结果分配到外部变量?
我谷歌了,发现这个代码..
var return_first = (function () {
var tmp = null;
$.ajax({
'async': false,
'type': "POST",
'global': false,
'dataType': 'html',
'url': "ajax.php?first",
'data': { 'request': "", 'target': arrange_url, 'method': method_target },
'success': function (data) {
tmp = data;
}
});
return tmp;
});
Run Code Online (Sandbox Code Playgroud)
但不适合我..
任何人都能说出该代码有什么问题吗?
Igo*_*gor 49
你丢失了一个逗号
'data': { 'request': "", 'target': 'arrange_url', 'method': 'method_target' }
Run Code Online (Sandbox Code Playgroud)
此外,如果要return_first保存匿名函数的结果,则需要进行函数调用:
var return_first = function () {
var tmp = null;
$.ajax({
'async': false,
'type': "POST",
'global': false,
'dataType': 'html',
'url': "ajax.php?first",
'data': { 'request': "", 'target': 'arrange_url', 'method': 'method_target' },
'success': function (data) {
tmp = data;
}
});
return tmp;
}();
Run Code Online (Sandbox Code Playgroud)
最后请注意().
jos*_*aly 31
这就是你需要做的一切:
var myVariable;
$.ajax({
'async': false,
'type': "POST",
'global': false,
'dataType': 'html',
'url': "ajax.php?first",
'data': { 'request': "", 'target': 'arrange_url', 'method': 'method_target' },
'success': function (data) {
myVariable = data;
}
});
Run Code Online (Sandbox Code Playgroud)
注意:已使用"async"已弃用.请参阅https://xhr.spec.whatwg.org/.
小智 22
使用'async':false来防止异步代码是一种不好的做法,
主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.https://xhr.spec.whatwg.org/
在表面上设置async to false修复了很多问题,因为正如其他答案所示,您将数据转换为变量.但是,在等待post数据返回时(由于数据库调用,连接速度慢等等,在某些情况下可能需要几秒钟),其余的Javascript功能(如触发事件,Javascript处理按钮,JQuery转换(如当响应处于挂起状态时,手风琴或自动完成(JQuery UI)将无法发生(如果响应永远不会回来,那么你的网站现在基本上已被冻结,这真的很糟糕).
试试这个,
var return_first;
function callback(response) {
return_first = response;
//use return_first variable here
}
$.ajax({
'type': "POST",
'global': false,
'dataType': 'html',
'url': "ajax.php?first",
'data': { 'request': "", 'target': arrange_url, 'method': method_target },
'success': function(data){
callback(data);
},
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
126948 次 |
| 最近记录: |