背景インターフェイス ドメイン名はハードコードされておらず、動的に取得されます。具体的な実装は、静的な json ファイルを読み取って実際のインターフェース ドメイン名を設定することです。利点は、元のドメイン名がブロックされる可能性があるため、バックグラウンドで構成ファイルを直接変更できることです。それ以外の場合は、h5 プロジェクトは問題ないかもしれませんが、アプリを再リリースする必要があります。 コード// httpService.js は uni.request をカプセル化します。 データ要求の入り口では、まずドメイン名が取得され、つまりconfig.requestRemoteIpメソッドが実行されます。 '@/config' から設定をインポートします 'vue' から Vue をインポートします '@/service/cacheData.js' から cacheData をインポートします。 const MockUtil = () => import('@/libs/mockUtil.js') '@/libs/storage.js' からストレージをインポートします。 クラス HttpRequest { /** * インターフェースデータを読み取ります * @param options リクエスト情報 * @param noMock モックデータを全体として使用する場合、実際のデータをリクエストするための別のインターフェースを設定できます * @param cacheId * @returns {*} */ 非同期リクエスト解決(オプション、urlCustom = '', noMock = false, cacheId = null) { let remoteIP = await config.requestRemoteIp(); // インターフェースリクエストドメイン名を動的に設定する if (process.env.NODE_ENV === 'development' && config.isMockApi && !noMock) { this.getMockData(オプション) を返します } if (cacheId && cacheData[cacheId]) { this.testHttp(cacheData[cacheId]) を返します。 } 新しい Promise を返します ((resolve, reject) => { baseUrl を process.env.NODE_ENV === 'development' とします。config.baseUrl.dev : config.baseUrl.pro; options.url = baseUrl + options.url + `${urlCustom}`; ユニ.リクエスト( オブジェクト.assign({ 成功: (res) => { (res.statusCode != '200')の場合{ uni.showToast({ タイトル: 'サーバーエラー:' + res.statusCode、 アイコン:「なし」 }) 拒否する() } そうでない場合 (res.data.code == 10001) { ストレージ.removeToken(); Vue を新しい Vue() にします。 vue.$store.dispatch('ログアウト') vue.$routeUtil.reLaunch('main'); } そうでない場合 (res.data.code != 200) { (res.data.message)の場合{ uni.showToast({ アイコン: 'なし'、 タイトル: res.data.message }); } 拒否(res.data) } それ以外 { if (キャッシュID) { キャッシュデータ[キャッシュID] = res.data.data } 解決(res.data.data) } }, 失敗: エラー => { uni.showToast({ タイトル: 「サーバーエラー」 アイコン:「なし」 }) } }、オプション) ); }) } /** *モックデータは必要に応じてインポートされます* @param options * @returns {*} */ 非同期getMockData(オプション) { const モック = MockUtil() を待機します const MockUrl = Mock.default[options.url] if (typeof MockUrl !== 'function') { this.testHttp(MockUrl) を返します } if (options.method === 'post') { this.testHttp(MockUrl(options.data, false)) を返します } this.testHttp(MockUrl(options.params, true)) を返します } testHttp(データ) { pro = new Promise(function(resolve, reject) { とする setTimeout(関数() { 解決(データ) }, 50) }) リターンプロ } } デフォルトの新しい HttpRequest() をエクスポートします // config.js 定数設定 = { isMockApi: false、 // リクエスト URL: 'http://qiniu.eightyin.cn/teacherpath.json?time=' + Math.random().toString(36), リクエストURL: 'http://qiniu.eightyin.cn/teacherpathtest.json?time=' + Math.random().toString(36), ベースURL: { 開発者: ''、 プロ: '' }, 画像: { ossドメイン: '' }, uuid: Math.random().toString(36).substring(3, 20), リクエストリモートIP: () => { コンソールログ('config:', config) (config.RemoteIpInited) の場合 Promise.resolve() を返します。 新しい Promise を返します ((resolve, reject) => { uni.リクエスト({ URL: config.requestUrl、 成功: (応答) => { //todo テスト // config.baseUrl.pro = response.data.data.path; config.baseUrl.dev = 'http://bayin5.mycwgs.com/'; config.img.ossDomain = response.data.data.ossDomain; config.RemoteIpInited = true; 解決する() }, 失敗: () => { config.RemoteIpInited = true; 解決する() } }) }); } } デフォルト設定をエクスポート 上記は、uniapp がインターフェイスドメイン名を動的に取得する方法の詳細な分析です。uniapp がインターフェイスドメイン名を動的に取得する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: SQL ステートメント実行の詳細な説明 (MySQL アーキテクチャの概要 -> クエリ実行プロセス -> SQL 解析順序)
>>: Zabbix 監視ソリューション - 最新の公式バージョン 4.4 [推奨]
ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...
1. 新旧ドメイン名のジャンプ適用シナリオ: ドメイン名ベースのリダイレクト。会社の古いドメイン名は...
目次序文1. 問題の原因2. 解決策VueはelementUIテーブルtr thの高さと背景色を変更...
この記事では、explain を使用して SQL ステートメントを分析する方法を紹介します。実際、イ...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
アップグレードプロセス:元のシステム: CentOS7.3 [root@my-e450 ~]# un...
CSS 組み合わせセレクターには、単純なセレクターのさまざまな組み合わせが含まれます。 CSS3 に...
まず、setIntervalはフックとしてカプセル化されます👇 'react' から...
これは、CSS 3.0 で実装されたテキストのホバーとジャンプ効果です。効果は次のとおりです。 以下...
現在、プロジェクトを作成しました。インターフェースは次のとおりです。これはフレームセットを使用して行...
<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...
Unicode は、世界中のすべてのテキストと記号に対応できる国際組織によって開発された文字エンコー...
通常、vue プロジェクトではルーティングを使用します。vue-router は vue.js の公...
まず、MySQLをskip-grant-tablesモードで起動します: mysqld --skip...
①. エイリアス(CNAME)レコードの使用方法:前回の投稿のドメイン名解決では、A レコードの解...