VueプロジェクトでBaiduマップAPIなどのサードパーティを呼び出す際のクロスドメインの問題

最近vueプロジェクトを行っています:

まず、デフォルトで現在の都市情報を取得します。これには、都市名、緯度、経度などが含まれます。

方法:

1.プロジェクトディレクトリindex.htmlで最初に導入されました

<script type = "text / javascript" src = "http://api.map.baidu.com/api?v=2.0&ak=您的密钥"> </ script>

キーはBaidu Developer Platformを通じて適用できます

2. build / webpack.base.conf.jsのエントリと同じレベルを構成します。

3.構成が完了したら再起動し、npm run dev

4. utils.jsファイルを公開ファイルに作成すると、コードは次のようになります。

5.使用する必要があるファイルを紹介します

'./utils/utils.js'から{getCityInfo}をインポートする

getCityInfo()。then((res)=> {

   特定の操作コード

})。catch(_ => {});

2番目の要求:都市を切り替えて現在の都市の緯度と経度を取得します。マップを現在の都市に配置する必要があります(都市名で都市の緯度と経度のインターフェイスを取得するには、Baidu apiを呼び出す必要があります) http://api.map.baidu.com/geocoder/v2/?address =北京&出力= json&ak =あなたの鍵

方法:(最善の方法はjsonpを使用することです。これについては以下で詳しく説明します)

jsonpを使用する前に、他の多くの方法を試しましたが、すべて失敗しました。config/ index.jsの下にproxyTableプロキシを追加する方法を使用しましたが、この方法は開発環境でのみ有効です。ドメインの問題はまだ存在しており、開発環境のデバッグインターフェイスは次のように問題ありません。

Vueページのリクエストメソッドは次のとおりです。

       ps:要求されたURLは次のようになります

        axios({
          url: "/ v2 /?address = Chengdu&output = json&ak = your key"、   
        })。then(res => {
           特定の操作
        })

次に、シンプルで直接的かつ暴力的な方法について話します。

直接npmインストールvue-jsonp --saveインストール依存関係

次にmain.jsで紹介します

Vueページで使用:

クロスドメイン問題の完璧な解決策!

HL
8つのオリジナル記事を公開 Likes5 訪問40,000+

おすすめ

転載: blog.csdn.net/helenwei2017/article/details/89668531