SpringBoot+Vue配合ドメイン間スキーム
3106 ワード
バックグラウンドSpringBoot@CrossOriginでドメイン間を実現した後、フロントは直接ドメイン間を呼び出すことができ、バックグラウンドcontrollerの書き方は参考になる.
フロントエンドvueプログラムで、vueのproxyドメイン間エージェントを以前に構成した場合は、まずそれを注釈し、プロジェクトとディレクトリに開発(deployment)ファイル---を作成します.env.developmentと生産(prod)の環境変数ファイル---.env.production .env.developmentファイル内容 .env.productionファイル内容
axiosがapiを呼び出す場所では、src/api/consoleのようなbaseurlを環境変数で設定することができる.js当直コンソールのapi呼び出し
このドメイン間スキームの利点は vue proxyTable構成 は不要 nginxのエージェント構成を回避する npm devとbuildは互いに影響を及ぼさず、開発テストと本番導入時に世代API呼び出しアドレス を変更する必要はありません.
ドメイン間スキームの要件はバックエンドspringbootサービス@CrossOriginサポートドメイン間 現在、バックグラウンドで@CrossOriginを使用せずにFilter方式でドメイン間で実行しようとしていますが、このスキームは四角形method optionの要求ではありません.restfulドメイン間では、フロントエンドがヘッダにtoken情報を書き込む必要があります.これにより、ブラウザがドメイン間でoption要求を開始し、filterスキームの失効を招きます.時間がある場合は、@CrossOriginがブロッカーまたはフィルタを使用してバックグラウンドグローバルドメイン間サポートを実現できることを確認してください.
@CrossOrigin
public class DutyController extends BaseController{
@Autowired
DutyService dutyService;
@ApiOperation(value=" ", notes=" ", produces="application/json")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token",
example="token-swagger", required = true),
@ApiImplicitParam(name="page_no",value=" ",dataType="int", paramType = "query",example="1"),
@ApiImplicitParam(name="page_size",value=" id",dataType="int", paramType = "query",example="10")
})
}
フロントエンドvueプログラムで、vueのproxyドメイン間エージェントを以前に構成した場合は、まずそれを注釈し、プロジェクトとディレクトリに開発(deployment)ファイル---を作成します.env.developmentと生産(prod)の環境変数ファイル---.env.production
# just a flag
ENV = 'development'
# base api
# mockjs
# api base-url
VUE_APP_BASE_API = '/dev-api'
# rul API
# monitor manage api
VUE_APP_MONITOR_MANAGE_API = 'http://localhost:8081/monitor_manage'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require().
# This configuration can significantly increase the speed of hot updates,
# when you have a large number of pages.
# Detail: https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/babel-preset-app/index.js
# npm run dev mockjs es6 vue-template-admin
VUE_CLI_BABEL_TRANSPILE_MODULES = true
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = '/prod-api'
VUE_APP_MONITOR_MANAGE_API = 'http://188.131.222.102:8181/monitor_manage/'
axiosがapiを呼び出す場所では、src/api/consoleのようなbaseurlを環境変数で設定することができる.js当直コンソールのapi呼び出し
import request from '@/utils/request'
request.defaults.baseURL = process.env.VUE_APP_MONITOR_MANAGE_API
// 3
export function get3dayList(data) {
return request({
url: '/api/receive-task/list-3day-recent',
method: 'get',
params: data
})
}
//
export function getStepEventList(data) {
return request({
url: '/api/event/step-event-page',
method: 'get',
params: data
}).then(e => format(e, 'flow'))
}
このドメイン間スキームの利点は
ドメイン間スキームの要件は