function sumData(address, datas){
var sums = 0;
$.ajax({
success: function (html) {
html = JSON.parse(html);
sums = html.sums; //这里获取的值
//console.log(sums);
},
url: address,
type: "post",
dataType: "html",
cache: false,
data: datas,
timeout: 60000
});
console.log("sums="+sums);
return sums;
}
ajax返回的结果 html.sums,怎么给sums赋上呢
这个测试最后返回都是0,哪里没写对呢
在ajax 参数中 加上async : false即可
有2点可以排查 1 直接通过地址访问address请求路径 看返回值内置是否存在html.sums对应项或值
async : false
借楼上的答案:在ajax 参数中 加上async : false即可
ajax返回的参数html是什么、数据格式是怎样的
你的return 写错地方了。应该写在success函数里。
$.ajax({
success: function (html) {
html = JSON.parse(html);
sums = html.sums; //这里获取的值
//console.log(sums);
},
url: address,
type: "post",
dataType: "html",
cache: false,
data: datas,
timeout: 60000
});
这个ajax是异步请求,还没返回,你的函数已经执行到return了
有两种方法:
1.ajax 默认为异步处理, 如果接口响应很快,那么加上async : false可以设置为同步处理。
2.可以把得到sum值之后的逻辑放到ajax的success方法里面,这样就还是ajax异步处理了。