最近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ページで使用:
クロスドメイン問題の完璧な解決策!