JonathanLiu
JonathanLiu
  • 发布:2015-11-19 11:04
  • 更新:2018-03-09 09:57
  • 阅读:4159

mui.ajax https 不成功异常为abort

分类:MUI

mui.ajax 请求https的服务器json数据 不成功异常为abort ,http能使用

2015-11-19 11:04 负责人:无 分享
已邀请:
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请求登录了,搞了我两天时间,这种坑太隐蔽了

snowBobby

snowBobby - 写遍代码

我也一样啊,你把url贴出来看看

JonathanLiu

JonathanLiu (作者)

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxXXXXX&secret=1fd56a90sadfasdfxxfsdfsf
这种的https就可以
然后服务器给我的自己搞的https就不行,不知道怎么搞

  • DCloud_UNI_FXY

    把你服务器的https地址发给我一下,我测试测试


    2015-11-19 16:27

  • JonathanLiu (作者)

    https://api.secmir.com/secmirApi/system/get_protocols


    2015-11-20 17:37

  • JonathanLiu (作者)

    回复 DCloud_UNI_FXY:@114916:https://api.secmir.com/secmirApi/system/get_protocols 知道怎么跳过验证么


    2015-11-24 13:53

  • DCloud_UNI_FXY

    回复 JonathanLiu:我这里用android5.1测试你这个链接,可以正常请求,请详细说明你的测试环境,如手机型号,系统版本,网络环境


    2015-11-24 15:02

  • JonathanLiu (作者)

    回复 DCloud_UNI_FXY:iPhones5s , 9.1,wifi与手机网络试过都不行 ,我之前开发是用iOS原生,需要添加一段跳过验证的代码,这个ajax也应该需要把


    2015-11-24 18:09

  • DCloud_UNI_FXY

    回复 JonathanLiu:临时解决方案,在ajax的时候传入crossDomain:true


    2015-11-24 18:19

  • JonathanLiu (作者)

    回复 DCloud_UNI_FXY:iOS加上这个还是不行,我拿android 4.2的系统试过了,不加上crossDomain:true也能跑通


    2015-11-25 10:15

  • DCloud_UNI_FXY

    回复 JonathanLiu:我这里测试加上crossDomain之后没问题啊


    2015-11-26 15:56

  • JonathanLiu (作者)

    回复 DCloud_UNI_FXY:var url = "https://api.secmir.com/secmirApi/system/get_protocols";

    mui.ajax(url,{ dataType: 'json', //服务器返回json格式数据

    crossDomain:true,

    type: 'post', //HTTP请求类型

    timeout: 10000, //超时时间设置为10秒;

    success: function(data) {

    alert("success")

    },

    error: function(xhr, type, errorThrown) {

    //异常处理;

    console.log(type);

    alert("error");

    }});

    代码这样有错?反正我这一直不行


    2015-11-30 10:18

  • DCloud_UNI_FXY

    回复 JonathanLiu:iphone6,ios9.1,wifi,4g测试代码均无问题


    2015-11-30 16:33

  • JonathanLiu (作者)

    回复 DCloud_UNI_FXY:我代码这样写有问题么?可不可以把你的测试代码贴出来看一下,我模拟器打开也不行,5s的也不行。。


    2015-12-01 10:40

啊啊啊啊sky

啊啊啊啊sky

你好,请问解决了吗

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