首页 新闻 会员 周边 捐助

js post请求

0
[已解决问题] 解决于 2018-07-18 11:31

function  A(){

$.post("url",{参数},function(data){

})

}

想问下怎么在function A里进行获取post请求之后返回的Data数据,不是在function(data)里获取

凉夏诺浅的主页 凉夏诺浅 | 菜鸟二级 | 园豆:224
提问于:2018-07-18 10:10
< >
分享
最佳答案
0

return 出来应该可以吧

奖励园豆:5
华临天下 | 小虾三级 |园豆:1501 | 2018-07-18 10:24

function(data)里return data?但是这样的话,你在function A里用data的时候会出现data未定义

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 10:28

@凉夏诺浅: 

function  A(){

var dt;

$.post("url",{参数},function(data){

dt=data;

})

return dt;

}

 var dt=A();  if(dt){console.log(dt);}

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 10:32

@华临天下: 要在function A(){

var dt;

$.post("url",{参数},function(data){

dt=data;

})

要在这里获取data的数据,我把dt拿出来也是没有数据的

}

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 10:53

@凉夏诺浅: 

function A() {
var dt;
$.post("?act=GetMsg", { msg: "wudi" }, function (data) {
dt = data;
});
return dt;
}

function B() {
var dt;
$.ajax({
url: '?act=GetMsg',
type: 'post',
async: false,
data: { msg: 'hauge' },
success: function (data) {
dt = data;
}
});

return dt;
}
function fnClick() {
alert(B());
// alert(A());
}

刚刚测试了一波,这个$.post好像默认就是异步请求,你要么试试$.ajax,要么设置那个请求方式

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 11:08

@华临天下: 嗯嗯 照着你说的数据就取出来了,因为是异步请求所以还没到返回数据的时候就已经执行后面的赋值了,然后等返回数据时值已经取不出来了是么?

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 11:25

@凉夏诺浅: 是的,帮助到你的话可以给点豆豆吗?

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 11:28

@华临天下: 嗯嗯  非常感谢,不知道有没办法如果进行异步请求了,怎样取出数据?

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 11:31

@凉夏诺浅: 你可以试试把$.post这个方法从A函数拿出去使用

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 11:35

@华临天下: 这个也不管用,因为我要在A函数里获取请求到的值,所以它还是会在还没请求完就执行下一步,然后又跟没拿出来一样的结果

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 11:47

@凉夏诺浅: 我说不要在A函数里面请求,在外面请求

function fnClick() {
//alert(B());
$.post("?act=GetMsg", { msg: "wudi" }, function (data) {
alert(data);
});
}

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 11:49

@华临天下: 关键在于我要在A函数里用到这个请求回来的结果啊

凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 11:52

@凉夏诺浅: 那就同步请求吧。。。省的麻烦

华临天下 | 园豆:1501 (小虾三级) | 2018-07-18 11:54
其他回答(1)
0

function A(){

这是你写的一个方法;

调用这个方法后,才会执行post请求;

然后你定义一个隐藏域,把function(data)

里面返回的值赋值给这个隐藏域,然后在加载页面的时候获取这个隐藏域的值

}

雷。 | 园豆:775 (小虾三级) | 2018-07-18 10:16

不想采用赋值给隐藏域这种方式,不能够赋值给一个变量然后直接用么

支持(0) 反对(0) 凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 10:25

@凉夏诺浅: 可以  这不意思都一样吗

支持(0) 反对(0) 雷。 | 园豆:775 (小虾三级) | 2018-07-18 10:37

@竜咚咚: 把data赋值给自定义的变量拿不出来数据

支持(0) 反对(0) 凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 10:54

@凉夏诺浅: 

function Sublogin() {
var dt;
var name = $("#txt_User").val();
var upwd = $("#txt_Pwd").val();
var code = $("#txt_code").val();
var ischeck = null;
if ($("#readCheck").is(':checked')) {
ischeck == "1";
} else {
ischeck == "0";
}
if (name == "") {
$("#uname").attr('placeholder', '请输入用户名');
return false;
}
if (upwd == "") {
$("#upwd").attr('placeholder', '请输入密码');
return false;
}
if (code == "") {
$("#txt_code").attr('placeholder', '请输入验证码');
return false;
}
$.ajax({
url: '/Login/IsLogin',
data: { "Unaem": name, "upwd": upwd ,"ischeck":ischeck,"code":code},
dataType: 'json',
type: "post",
success: function (json) {
dt = json.status;
alert(dt);
}
})
}   

 

 

dt 可以拿到

支持(0) 反对(0) 雷。 | 园豆:775 (小虾三级) | 2018-07-18 11:31

@竜咚咚: 你理解错了,我想要在 function Sublogin 里拿到dt,也就是要在ajax外面取出数据。就比如

function Sublogin() {
var dt;
var name = $("#txt_User").val();
var upwd = $("#txt_Pwd").val();
var code = $("#txt_code").val();
var ischeck = null;
if ($("#readCheck").is(':checked')) {
ischeck == "1";
} else {
ischeck == "0";
}
if (name == "") {
$("#uname").attr('placeholder', '请输入用户名');
return false;
}
if (upwd == "") {
$("#upwd").attr('placeholder', '请输入密码');
return false;
}
if (code == "") {
$("#txt_code").attr('placeholder', '请输入验证码');
return false;
}
$.ajax({
url: '/Login/IsLogin',
data: { "Unaem": name, "upwd": upwd ,"ischeck":ischeck,"code":code},
dataType: 'json',
type: "post",
success: function (json) {
dt = json.status;

}
})

alert(dt);
}  

支持(0) 反对(0) 凉夏诺浅 | 园豆:224 (菜鸟二级) | 2018-07-18 11:35

@凉夏诺浅: 那就设置为同步就行了

$.ajaxSettings.async = false;
$.post("/Login/IsLogin", { "Unaem": name, "upwd": upwd, "ischeck": ischeck, "code": code }, function (json) {

 dt = json.status;
// })

 

alert(dt);

支持(0) 反对(0) 雷。 | 园豆:775 (小虾三级) | 2018-07-18 11:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册