微信浏览器中的XMLHttpRequest.readyState为0
是用vue
构建的项目,在微信浏览器下同样的页面请求,只会在iphone
下出现,而且是在https
的情况下出现(而且并不是100%出现,大概50%的概率出现吧),http
的不会这种问题,vue-resource
和jquery
的请求方法我都试了,插件造成原因大概可以排除,报错的原因是XMLHttpRequest.readyState
为0,XMLHttpRequest
对象没有初始化,在vue
中造成这种情况的原因大概率是什么情况
下面是用jquery
报错打印出的代码
{ "readyState": 0, "status": 0, "statusText": "error" }
下面是vue-resource简单的测试代码
<script>
import {testUrl} from 'common/config'
export default {
data(){
return{
content:'还没加载数据',
status:'请求状态'
}
},
mounted() {
this.Request()
},
methods: {
Request(){
this.content='开始加载中...'
this.$http({
method:'GET',
url:testUrl
}).then((res)=>{
this.status='请求成功'
this.content = res
// alert('请求成功')
}).catch((err)=>{
this.status='请求失败'
this.content = err
// alert('请求失败')
})
}
}
}
</script>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你解决了嘛 我也遇到了
是不是https证书不被信任
我遇到类似的情况是同时使用表单提交和ajax数据请求,这里你只用其中一种即可。如果你的不是,还是贴代码看看再说。
用个抓包工具,看看。。。
解决了,我这边用抓包工具,同时后台那边加上log日志,发现了问题所在:在企微端,那个cookie过十几秒就莫名丢失了,后台那边有相关验证的,所以就触发了后台验证cookie的,后台重定向了,所以导致接口的statue为0;因为http请求state为0有以下几种原因:
当我们得到Http status:0时,可能会是以下几种情况:
后面让后台review一下代码后,现在就正常了。
参考链接:
http://www.publiccms.com/ques...
https://fetch.spec.whatwg.org...