weex stream.fetch http请求失败,为什么?

 var stream = weex.requireModule('stream')
  export default {
    data () {
      return {
        myimg:'unknown'
      }
    },

    methods: {
      getStarCount (repo, callback) {
        return stream.fetch({
          method: 'GET',
          type: 'json',
          url: 'https://c.sevenkids.cn/yzmm/account/knowledge/ajaxOpenSerachKnowledgeList'
        }, callback)
      }
    },
    created () {
      this.getStarCount('11', res => {
        this.myimg = res.ok ?JSON.stringify(res):JSON.stringify(res)
      })
    }
  }
  

这是请求头:
Referer http://dotwe.org/raw/htmlVue/...
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8
Origin http://dotwe.org
返回结果:
{"status":-1,"ok":false,"statusText":"","data":""}

是这里引用的‘stream’ 需要自己实现吗?

 var stream = weex.requireModule('stream')
阅读 7.3k
3 个回答

在native 端没问题,web由于浏览器限制有跨域问题。可在服务端处理一下,允许跨域

不用,stream 是 weex 提供的。但你这个请求在 web 上有跨域问题导致的。native环境没有跨域问题

stream 里面是默认支持跨域的

stream源码:

const modeOptions = ['cors', 'no-cors', 'same-origin', 'navigate']
......
// validate options.mode
if (typeof config.mode === 'undefined') {
  config.mode = DEFAULT_MODE
}

本地测试,默认的跨域依然访问不了返回json格式的接口; 为了实现功能,只能用的jsonp的,经测试 jsonp是可以用的。
本地测试写的一个 weex 列表展示、新增、删除、修改 的功能;

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进