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