ajax请求后的Javascript警报值

Javascript alert value after ajax request

本文关键字:Javascript 请求 ajax      更新时间:2023-09-26

为什么我不能在这个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);

如果我在error函数中将alert设置为local,那么一切都可以正常工作,但我需要在ajax之后提醒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);
            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  
        }
    });

在Ajax请求完成时出错或成功的情况下,会调用error或success函数,因此,如果您在函数外警告值,则为x赋值的代码将不会执行。

x的值是在请求完成后分配的,因此它可以在错误函数中提醒您的情况下工作。

请尝试此代码:

           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);

你的错误是什么?