ajax请求后的Javascript警报值

时间:2013-11-18 12:17:36

标签: javascript jquery ajax

为什么我在这个ajax请求后无法提醒x值? 我使用错误功能。

           var x;

    $.ajax({
        url: 'http://gdata.youtube.com/feeds/api/videos/' + code,
        type: 'get',
        dataType: 'json',
        success: function(data) { 
           console.log('Result 1: ');
           console.log(data.responseText);
        },
        error: function(e) {
            var text = e.responseText;

            parser = new DOMParser();
            xmlDoc = parser.parseFromString(text, "text/xml");

            var titleXml = xmlDoc.getElementsByTagName('title')[0];
            var contentXml = xmlDoc.getElementsByTagName('content')[0];

            title = titleXml.childNodes[0];
            content = contentXml.childNodes[0];

            x = title;

        }
    });

    alert(x);

如果我在错误函数中使本地警报一切正常,但我需要在ajax之后提醒x值。

3 个答案:

答案 0 :(得分:2)

   $.ajax({
        url: 'http://gdata.youtube.com/feeds/api/videos/' + code,
        type: 'get',
        dataType: 'json',
        success: function(data) { 
           console.log('Result 1: ');
           console.log(data.responseText);
            alert(x);
//          ^^^^^^^^when get any success then use alert on ajax success
        },
        error: function(e) {
            var text = e.responseText;

            parser = new DOMParser();
            xmlDoc = parser.parseFromString(text, "text/xml");

            var titleXml = xmlDoc.getElementsByTagName('title')[0];
            var contentXml = xmlDoc.getElementsByTagName('content')[0];

            title = titleXml.childNodes[0];
            content = contentXml.childNodes[0];

            x = title;
            alert(x); 
//          ^^^^^^^^when get any error then use alert on ajax error  

        }
    });

答案 1 :(得分:1)

如果Ajax请求完成错误或成功,则会调用错误或成功函数,因此如果您警告函数外部的值,则将值赋值给x的代码将不会执行。

x的值是在请求完成后分配的,所以它可以在你在错误函数中被警告的情况下工作。

答案 2 :(得分:0)

请试用此代码:

           var x;

$.ajax({
    url: 'http://gdata.youtube.com/feeds/api/videos/' + code,
    type: 'get',
    dataType: 'json',
    success: function(data) { 
       x = 0;
       console.log('Result 1: ');
       console.log(data.responseText);
    },
    error: function(e) {
        var text = e.responseText;

        parser = new DOMParser();
        xmlDoc = parser.parseFromString(text, "text/xml");

        var titleXml = xmlDoc.getElementsByTagName('title')[0];
        var contentXml = xmlDoc.getElementsByTagName('content')[0];

        title = titleXml.childNodes[0];
        content = contentXml.childNodes[0];

        x = title;

    }
});

alert(x);

你的错误是什么?