用Hbulid做前端页面的时候遇到ajax请求报错的问题。测试了很常时间好像跟HBulid的mui有关。
同样的方法我用web页面测试了一遍就是正常的。
客户端请求:
<script>
mui.plusReady(function() {
getAddressList();
});
//加载列表
function getAddressList() {
var addressurl = rootUrl + '/UserAddress/GetUserAddressList';
var data = JSON.stringify({encodedId:plus.storage.getItem('user_id')});
mui.ajax(addressurl,{
data:data,
dataType:'json',
contentType:'application/json; charset=utf-8',
type:"post",
timeout:1000000,
async: false,
success:function(result) {
if (result.resultCode == 1000) {
var addresses = result.list;
for (var i in addresses) {
console.log('A'+addresses[i].status);
}
} else {
console.log('3');
mui.toast('服务器异常,请稍后重试!', {
duration: 3500
});
}
},
error:function(xhr, type, errorThrown) {
console.log(xhr.status);
if (type == 'timeout') {
console.log('5');
mui.toast('连接超时,请稍后重试!', {
duration: 3500
});
} else if (type == 'error') {
console.log('6');
mui.toast('连接异常,请稍后重试!', {
duration: 3500
});
}
}
});
console.log('complete');
}
服务器端JAVA代码:
/* 获取收货人信息列表/
@RequestMapping(value = "/GetUserAddressList", method=RequestMethod.POST, produces="application/json; charset=utf-8")
@ResponseBody
public AddressPageModel getUserAddressList(@RequestBody AddressPageModel addressPage) {
AddressPageModel back = new AddressPageModel();
Integer userId = Integer.parseInt(EncryptUtil.decode(addressPage.getEncodedId()));
//如果我在这个地方打个断点等待20秒左右就会报错。如果直接让他执行就正常。也就是说异步等待没有任何效果。同样的如果用网页一切正常。
back.setResultCode(ResultCode.FAILED);
try {
List<UserAddress> list = userAddressService
.getUserAddressListByUserId(userId);
back.setList(list);
back.setResultCode(ResultCode.SUCCESS);
} catch (Exception e) {
e.printStackTrace();
}
return back;
}
0 个回复