一朵羊毛飞上天
一朵羊毛飞上天
  • 发布:2016-08-04 10:10
  • 更新:2018-03-09 09:58
  • 阅读:4117

mui.ajax无法连接无服务器(本地测试),返回abort

分类:MUI

这是服务器代码
@ResponseBody
@RequestMapping(value = "test")
public JSONObject test(HttpServletResponse response){
/System.out.println(stu+"进来了");
response.setContentType("text/json; charset=utf-8");
response.setHeader("Access-Control-Allow-Origin", "");
response.setHeader("Access-Control-Allow-Headers", "X-Requested-With");
response.setHeader("Cache-Control", "no-cache");
/
JSONObject json = new JSONObject();
json.put("username","yuyang");
return json;
}

这是页面代码
var url = "http://127.0.0.1:8888/Sportnews/user/test";
mui.ajax(url, {
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
success: function(data) {
console.info(data);
},
error: function(xhr, type, errorThrown) {
//异常处理;
console.log(type);
}
});

运行之后返回异常 abort

ps:1、已经在页面的heard加了<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta http-equiv="content-security-policy">
2、使用安卓模拟器测试app,该安卓模拟器可以上百度页面,算是联网了吧。
3、mui.ajax是在mui.plusReady()中运行的。

我在本地服务器打debug然后运行mui.ajax没有任何反应,假如我拿掉mui.ajax和mui.plusReady(),使用jsonp跨域可以成功,但是一旦加上mui那些东西,使用json数据类型就根本连服务器都进不去。

请问这是什么原因?

2016-08-04 10:10 负责人:无 分享
已邀请:

最佳回复

Trust

Trust - 少说废话

本地测试,手机要和本地服务在同一个局域网才可以。
并且,ip地址需要填写真实的子网地址,不可用localhost以及127.0.0.1。

  • 一朵羊毛飞上天 (作者)

    安卓模拟器应该和本地服务器同一个局域网吧,都是在同一个电脑上运行的

    2016-08-04 10:32

  • Trust

    回复 一朵羊毛飞上天:看下最新回复。

    2016-08-04 10:40

  • 一朵羊毛飞上天 (作者)

    回复 Trust:多谢!!完美解决了!!我查看了自己本机的ip地址,把url换成了ip地址,就成功的搞定了!!

    2016-08-04 10:45

  • 5***@qq.com

    回复 Trust:在获取后台数据的时候,我把url的ip换成了后台数据服务的接口,但是还是报abort,请问这是为什么呢

    2018-05-10 11:24

2***@qq.com

2***@qq.com - 90it

这个问题我解决了,不知道你是不是在登录界面发生,我开始也是套用了,mui的登录模板,这个是很隐蔽的坑,
登录模板中是这样的
<button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button>

大家注意看没有,给这按钮绑定事件是发送不了post请求的,一直报abort(中止),关键点在于
form表单下的按钮在没有指定type类型的时候,如果我们同时给其添加了点击事件的话... 会默认button为tpye=“submit” ,登录模板没有说明这个问题.导致很多小伙伴都用了登录的模板,我的解决办法就是在button加上一个type="button"
<button id='login' type="button" class="mui-btn mui-btn-block mui-btn-primary">登录</button>

这样就可以正常发送post请求登录了,搞了我两天时间,这种坑太隐蔽了

该问题目前已经被锁定, 无法添加新回复