$.ajax({
url:'/findUrlById/',
type:'POST',
dataType:"json",
data:Ddata,
success:function(result){
var url_list = result;
if(url_list.length>0){
var wtboy = "";
var btboy = "";
var w = 0;
var b = 0;
for(var i = 0;i<url_list.length;i++){
if (url_list[i].utype ==1){
wtboy += "<tr>"
+"<td>"
+"<input type= 'hidden' id='locale_id' value='"+locale_id+"'/>"
+(w+1)
+"</td>"
+"<td class='col-sm-5'>"
+url_list[i].url
+"</td>"
+"<td>"
+url_list[i].title
+"</td>"
+"<td>"
+"<button class='btn btn-xs btn-danger' id='url_delete' onclick='delUrl("+url_list[i].id+")'>"
+"<i class='fa fa-times fa-lg'></i>删除</button>"
+"</td>"
+"</tr>"
w++;
}else{...}
第一个ajax请求
function delUrl(url_id){
var r = confirm('确定要删除此URL地址?');
if(r) {
var udata = {"url_id": url_id};
$.ajax({
url: '/delURL/',
type: 'POST',
async: false,
data:udata,
success: function (result) {
if (result == 'ok') {
layer.alert('删除成功!');
} else {
layer.alert('删除失败,请重试!');
}
}
})
}
}
第二个ajax请求今天对JS拼接的代码中需要做一个onclick事件方法,用ajax提交到后台,目的就是在弹出框中拼接展示的列表进行删除操作,本来是很简单,就一股脑吧代码敲上去,但是测试的时候发现执行不了URL的方法,检查了一下后台方法和ajax方法,没有错误,但是仔细分析思路,发现ajax是默认异步提交数据,前面有一个ajax1去请求弹出框的表格数据,后面的ajax2去取ajax1请求到的数据的元素再进行提交,异步的情况下ajax1执行,但是服务器还未返回数据的时候,js会继续执行ajax2,但是ajax1还未返回数据,所以ajax2取不到数据,这样就导致我的ajax2取不到数据,执行错误,我试着把ajax2改为异步请求,问题解决,我猜想把ajax1改为同步请求也是可以的