我经常使用jQuery post请求.我知道当你在响应中工作时,变量有自己的范围.有没有一种很好的方法可以在响应中设置变量,但是在帖子之外可以使用这些变量?喜欢JS中的其他功能.
以下是我正在做的事情的示例:
$.post('URL', { }, function(data) {
var cData = $.parseJSON(data);
$.each(cData, function(k, v) {
var cID = v.id;
});
Run Code Online (Sandbox Code Playgroud)
所以我做的是我无法在帖子请求之外访问cID.有没有办法让这项工作?
任何帮助都会很棒.谢谢
更新:
这是我刚刚测试过的一个示例:
var savedCount;
$.post('/app/actions/countsAction.php', { call: "getCountFullByID", countID: countID}, function(data) {
savedCount = 1;
alert(savedCount);
});
alert(savedCount);
Run Code Online (Sandbox Code Playgroud)
我跑这个时收到2个警报.当$ .post中的警报被触发时,第一个是1,而第二个是未定义的.
只需在$.post
调用之外声明您的变量:
var cID;
$.post('URL', function(data) {
var cData = $.parseJSON(data);
$.each(cData, function(k, v) {
cID = v.id;
});
});
Run Code Online (Sandbox Code Playgroud)
...不知道你正在尝试用它做什么,因为你循环收集并不断(重新)设置单个变量的值.如果需要跟踪所有变量,请考虑将值保存在(可能)数组中.
编辑
如果您需要进行同步("阻止")$.post
呼叫,则可以.从该文档的asynch
功能参数:
默认情况下,所有请求都是异步发送的(默认情况下设置为true).如果需要同步请求,请将此选项设置为false.跨域请求和dataType:"jsonp"请求不支持同步操作.请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作.
干杯
归档时间: |
|
查看次数: |
1775 次 |
最近记录: |