-3

可能重复:
在 ajax/jquery 调用的成功函数之外使用变量

我试图在 JSON 查询之外获取一个变量但没有成功:

$(document).ready(function(){
    $.getJSON("https://gdata.youtube.com/feeds/api/users/diasporaduo/uploads?v=2&alt=jsonc",function(json){

    videoid = json.data.items[0].id;
    });

    alert(videoid)
});

4

1 回答 1

1

您可以使用异步标志:

异步(默认值:true)

类型:Boolean 默认情况下,所有请求都是异步发送的(即默认设置为true)。如果您需要同步请求,请将此选项设置为 false。跨域请求和 dataType: "jsonp" 请求不支持同步操作。请注意,同步请求可能会暂时锁定浏览器,从而在请求处于活动状态时禁用任何操作。从 jQuery 1.8 开始,不推荐在 jqXHR ($.Deferred) 中使用 async: false ;您必须使用成功/错误/完成回调选项而不是 jqXHR 对象的相应方法,例如 jqXHR.done() 或已弃用的 jqXHR.success()。

您的代码示例是:

var videoid;
    $.ajax({
        url: 'https://gdata.youtube.com/feeds/api/users/diasporaduo/uploads?v=2&alt=jsonc',
        type: 'GET',
        async: false,
        success: function (json) {
            videoid = json.data.items[0].id;
        }
    });
    alert(videoid);

提琴手:http: //jsfiddle.net/5hE7n/

于 2013-01-21T19:47:30.923 回答