ajax异步无法获得返回值及无法操作iframe

1、ajax异步无法获得返回值
function GetUserInfo() {
    var username;
    $.ajax({
        type: "get",
        url: "Handle/OpeartionHandler.ashx",
        success: function(userinfo) {
            username = userinfo;
        }, error: function(data) {
            username = "";
        }
    });
    return username;
}
异步得到的username为undefined,原因是Jquery的ajax是异步的, 异步只能回调。 所以大多时候没执行完AJAX就return htmlcontent了,所以会一直返回undefined,解决:添加async: false,即修改此方法为同步。 

2、 ajax异步无法操作iframe
function getVedio() { 
var params = '{BuildingID:"14"}'; //将用户名和密码作为参数传过去
 $.ajax(
    { url: "../Controls/WebFormToAjaxBy_FJ007.aspx/GetAnnouncement", //调用后台方法 
     data: params,
     type: "post", 
     dataType: 'text', 
     async: false, 
     contentType: "application/json; charset=utf-8", //设置类型,注意一定不能丢 success:         function (data) { 
        var mydata = $.parseJSON($.parseJSON(data).d);
        console.log(mydata);                  
        console.log("datalenth:" + mydata.length);
        if (mydata.length === 0) { 
          $("#item2").wrapAll("  "); $("#item3").wrapAll("  "); }
          var VedioC = mydata[0].MessageInfo; 
          var hasVideo = /<\/video>/.test(mydata[0].MessageInfo); 
         if (mydata.length>0) { 
          if (hasVideo === false) { 
           $("#infroContent").append(mydata[0].MessageInfo); 
           $("#item2").wrapAll("  "); 
           } else if (hasVideo === true) {
             $("#item3").wrapAll("  "); 
             var VideoS = VedioC.split('src="');
             var VideoSrc = VideoS[1].split('"'); 
             $("#iframeVideo").attr("src", VideoSrc[0]); 
              console.log(VideoSrc[0]); }
            } 
    } 
       }); 
            } 改为同步即可操作iframe

猜你喜欢

转载自blog.csdn.net/qq_41802303/article/details/80067344
今日推荐