xwartz
V2EX  ›  V2EX

v2ex 接口 fetch 不到?

  •  
  •   xwartz · Jan 2, 2016 · 3062 views
    This topic created in 3861 days ago, the information mentioned may be changed or developed.

    今天想尝试下 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 replies    2016-01-03 11:23:08 +08:00
    aliuwr
        1
    aliuwr  
       Jan 2, 2016
    API 貌似有一些访问限制,我之前用 wget 就无法正常访问,非要手动用浏览器打开了再另存为。
    xwartz
        2
    xwartz  
    OP
       Jan 2, 2016
    @aliuwr 好像是只能在 v2ex.com 下才可以
    zsx
        3
    zsx  
       Jan 2, 2016

    百度一下 CORS
    xwartz
        4
    xwartz  
    OP
       Jan 3, 2016
    @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  
       Jan 3, 2016 via iPhone
    跨域啊……肯定不行啊…
    xwartz
        6
    xwartz  
    OP
       Jan 3, 2016
    @qinix 是因为 V2EX 本身就没有设置 Access-Control-Allow-Origin 吗,我对这方面不了解...
    那提供的 api 怎么用
    qinix
        7
    qinix  
       Jan 3, 2016 via iPhone
    @xwartz 非要在前端调用的话可以看看 API 提不提供 jsonp ,如果没有 jsonp 的话只能在后端调用了
    GG668v26Fd55CP5W
        8
    GG668v26Fd55CP5W  
       Jan 3, 2016 via iPhone
    可以用 YQL 之类的中转,那个是支持 CORS 的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1502 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 16:34 · PVG 00:34 · LAX 09:34 · JFK 12:34
    ♥ Do have faith in what you're doing.