微信浏览器中的XMLHttpRequest.readyState为0

发布于 2022-09-06 19:39:06 字数 1208 浏览 19 评论 0

是用vue构建的项目,在微信浏览器下同样的页面请求,只会在iphone下出现,而且是在https的情况下出现(而且并不是100%出现,大概50%的概率出现吧),http的不会这种问题,vue-resourcejquery的请求方法我都试了,插件造成原因大概可以排除,报错的原因是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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

万水千山粽是情ミ 2022-09-13 19:39:06

你解决了嘛 我也遇到了

绅刃 2022-09-13 19:39:06

是不是https证书不被信任

倾听心声的旋律 2022-09-13 19:39:06

我遇到类似的情况是同时使用表单提交和ajax数据请求,这里你只用其中一种即可。如果你的不是,还是贴代码看看再说。

乖乖兔^ω^ 2022-09-13 19:39:06

用个抓包工具,看看。。。

删除→记忆 2022-09-13 19:39:06

解决了,我这边用抓包工具,同时后台那边加上log日志,发现了问题所在:在企微端,那个cookie过十几秒就莫名丢失了,后台那边有相关验证的,所以就触发了后台验证cookie的,后台重定向了,所以导致接口的statue为0;因为http请求state为0有以下几种原因:
当我们得到Http status:0时,可能会是以下几种情况:

  1. url路径或协议头错误
  2. 网络断开
  3. 防火墙拦截了请求
  4. 跨域请求
  5. 服务端响应前取消

后面让后台review一下代码后,现在就正常了。

参考链接:
http://www.publiccms.com/ques...
https://fetch.spec.whatwg.org...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文