在ASP.NET Core開發中,ABP框架是一款非常流行的開發框架。而Vue.js也是一款非常流行的前端框架。本文將介紹如何將ABP與Vue.js進行對接。
首先,我們需要在ABP框架中進行一些設置。在項目的Startup.cs文件中,我們需要添加如下代碼:
public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddSwaggerGen(); services.AddCors(options =>{ options.AddPolicy(DefaultCorsPolicyName, builder =>builder.WithOrigins( //使用vue.js進行開發的地址 "http://localhost:8080" ) .WithAbpExposedHeaders() .SetIsOriginAllowedToAllowWildcardSubdomains() .AllowAnyHeader() .AllowAnyMethod() .AllowCredentials()); }); Configure(options =>{ options.UseSqlServer(); }); services.AddSwaggerDocument(); services.AddSignalR(); }
以上代碼中,我們添加了Swagger、Cors、SignalR等組件。同時,在Cors中我們也添加了Vue.js所用的開發地址。接下來,我們需要在ABP框架中添加一些訪問控制和認證的代碼:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseCors(DefaultCorsPolicyName); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseCookiePolicy(); app.UseAuthentication(); //添加這一行 app.UseAuthorization(); app.UseEndpoints(endpoints =>{ endpoints.MapControllers(); endpoints.MapHub("/signalr"); }); }
以上代碼中,我們添加了Authentication模塊的處理。最后,我們需要在Vue.js中添加一些代碼與ABP進行對接:
import axios from 'axios'; //引入axios庫 axios.defaults.headers.common['Abp.TenantId'] = ''; //設置請求頭 axios.defaults.headers.common['Abp.Localization.SourceName'] = 'AbpZeroTemplate'; let abpToken = abp.utils.getCookieValue('Abp.AuthToken'); if (abpToken) { axios.defaults.headers.common['Authorization'] = 'Bearer ' + abpToken; //設置認證信息 } new Vue({ render: h =>h(App), router, store }).$mount('#app');
以上代碼中,我們引入了axios庫,并添加了請求頭和認證信息,以便與ABP進行對接。至此,我們完成了ABP與Vue.js之間的對接。