28
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

覚え書き Vue.jsでjsonpを使ってみる

Last updated at Posted at 2017-11-02

htmlコーダーがフロントエンドを学ぶ記録。
まだまだ初心者だから間違えながら覚えていくぞ!

#jsだとapi弾かれがち
vue.jsで簡単なwebアプリが作れるようになり、
apiを試してよくぶち当たったのが
"access-control-allow-origin" 周りのエラー。
jsonpってのを使わないと回避できないクロスドメインのエラーのよう。

でも、vueでjsonpを扱ってる記事って見つからない…。
jqueryはいっぱい出てくるのに!

#vueにもあったjsonp
これだ。
https://github.com/LancerComet/vue-jsonp

vue-cli と 単一ファイルコンポーネントでやってる環境前提で。
まずはインストールしましょう。

terminal
$ npm install --save-dev vue-jsonp

で、使いたいコンポーネントの中でインポートします

hoge.vue
import Vue from 'vue'
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

使い方はざっくりこんな感じのよう。
Vueコンポーネント内だとthisになるのね。

Static function: Vue.jsonp(url, dataObj, timeout)
In Vue component: this.$jsonp(url, dataObj, timeout)

あとはこんな感じで

hoge.vue
data() {
  return {
    jsonData:''
  }
},
methods: {
  getData (apiUrl) {
    this.$jsonp(apiUrl, { keyword: 'キーワード' }).then(json => {
      // Success.
      this.jsonData = json
    }).catch(err => {
      // Failed.
    })
  }
}

ってな感じでaccess-control-allow-origin回避できそうです!
いろいろ試してみよ。

28
13
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?