V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xwartz
V2EX  ›  V2EX

v2ex 接口 fetch 不到?

  •  
  •   xwartz · 2016-01-02 21:19:14 +08:00 · 2505 次点击
    这是一个创建于 3240 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天想尝试下 vue.js ,就拿 V2EX 练手, fetch 不到数据啊, response.status 都是 0 啊,难道是我写错了?最后无奈的直接用了 json 文件...
    demo 可以看这里( https://github.com/xwartz/vue-v2ex)

    fetch('https://www.v2ex.com/api/topics/latest.json', {
        method: 'GET',
        headers: {
          'Content-Type': 'application/json;charset=UTF-8'
        },
        mode: 'no-cors'
      }).then(res => {
        if (res.status >= 200 && res.status < 300) {
          return Promise.resolve(res)
        } else {
          return Promise.reject(new Error(res.statusText))
        }
      }).then(res => {
        return res.json()
      }).then(data => {
        return data
      }).catch(err => {
        console.log(err)
      })
    
    8 条回复    2016-01-03 11:23:08 +08:00
    aliuwr
        1
    aliuwr  
       2016-01-02 22:29:50 +08:00
    API 貌似有一些访问限制,我之前用 wget 就无法正常访问,非要手动用浏览器打开了再另存为。
    xwartz
        2
    xwartz  
    OP
       2016-01-02 23:17:52 +08:00
    @aliuwr 好像是只能在 v2ex.com 下才可以
    zsx
        3
    zsx  
       2016-01-02 23:50:04 +08:00

    百度一下 CORS
    xwartz
        4
    xwartz  
    OP
       2016-01-03 00:07:30 +08:00
    @zsx 你这是直接在地址栏打开的? 我下面这样写有什么问题吗,设置了 `no-cors`

    ```js
    fetch('https://www.v2ex.com/api/topics/hot.json', {mode: 'no-cors'}).then(function(res){console.log(res)})
    ```
    qinix
        5
    qinix  
       2016-01-03 00:43:44 +08:00 via iPhone
    跨域啊……肯定不行啊…
    xwartz
        6
    xwartz  
    OP
       2016-01-03 01:06:02 +08:00
    @qinix 是因为 V2EX 本身就没有设置 Access-Control-Allow-Origin 吗,我对这方面不了解...
    那提供的 api 怎么用
    qinix
        7
    qinix  
       2016-01-03 01:21:33 +08:00 via iPhone
    @xwartz 非要在前端调用的话可以看看 API 提不提供 jsonp ,如果没有 jsonp 的话只能在后端调用了
    falcon05
        8
    falcon05  
       2016-01-03 11:23:08 +08:00 via iPhone
    可以用 YQL 之类的中转,那个是支持 CORS 的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   795 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.