3***@qq.com
3***@qq.com
  • 发布:2018-09-10 15:59
  • 更新:2018-09-10 18:00
  • 阅读:4561

关于https使用ajax的问题

分类:HTML5+

问题其实很简单,就是测试时候都是简单用http协议,上线需要换成https。这时候问题就来了。
http时候的请求是没问题的,换了https之后,用浏览器直接请求,也是没问题的。
就是在app里面用mui.ajax就会失败,错误类型abort。我看论坛里N多人都问过这个问题,但是就没有一个解决方案。

2018-09-10 15:59 负责人:无 分享
已邀请:
DCloud_UNI_CHB

DCloud_UNI_CHB

建议上传一个可重现问题的完整demo示例

  • 3***@qq.com (作者)

    特别简单,就是有个站点https://mbcm.platenogroup.com/。以前是http,而且换成https之后也是可以正常使用的。

    mui.ajax({

    url:"https://mbcm.platenogroup.com/APP/Login",

    data:{account:"admin",password:"admin"},

    type: "post",

    timeout: 5000

    })

    这样就一直失败了。

    所以,有没有用https访问正确了的例子或者地址我测试一下。

    2018-09-10 16:19

DCloud_UNI_CHB

DCloud_UNI_CHB

使用postman模拟了请求,同样报错(见下图),因此应该检查你们的服务端配置。

另外,你是post提交,怎么实现通过浏览器模拟的?

  • 3***@qq.com (作者)

    实际的参数有4个,string account, string password, string valiCode, int vcodecount。我是没贴了,参考http://ask.dcloud.net.cn/question/9703 链接里面的,使用plus.net.XMLHttpRequest也还是不行

    2018-09-10 17:05

3***@qq.com

3***@qq.com (作者)

不是浏览器模拟啊,而是这个站点除了app会请求之外,本身就是个网站使用的。现在是换成https部署之后,其他功能是没影响,就是app的请求就获取不到了。

3***@qq.com

3***@qq.com (作者)

没找到怎么上传图片,就不发图片了。但是地址确实是可以用的。

3***@qq.com

3***@qq.com (作者)

var xhr = new plus.net.XMLHttpRequest();
xhr.onreadystatechange = function () {
switch ( xhr.readyState ) {
case 4:
if ( xhr.status == 200 ) {
alert( "xhr请求成功:"+xhr.responseText );
} else {
alert( "xhr请求失败:"+ xhr );
}
break;
default :
break;
}
}
xhr.onerror = function (){
alert("这样也是不行");
}
xhr.open(_server + "/APP/" + method);
xhr.send(JSON.stringify(data));
直接把XMLHttpRequest例子那边的方式复制过来,也还是不行。

3***@qq.com

3***@qq.com (作者)

真的是,很搞不懂,再把XMLHttpRequest的部分注释掉,把原来ajax的部分取消注释,成功了一次,再多测试几下。

3***@qq.com

3***@qq.com (作者)

感谢大佬,解决了,还真的是太不小心了。跟ajax没半毛钱关系,就是服务器那边改了,app这边没改,请求肯定就是要报错的。

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