在Angular和Spring中加载外部页面而不暴露URL可以通过以下步骤实现:
import { Component, ElementRef, OnInit, ViewChild } from '@angular/core';
@Component({
selector: 'app-external-page',
template: '',
styleUrls: ['./external-page.component.css']
})
export class ExternalPageComponent implements OnInit {
@ViewChild('externalPage', { static: true }) externalPage: ElementRef;
ngOnInit() {
const iframe = document.createElement('iframe');
iframe.src = 'http://example.com/external-page'; // 替换为要加载的外部页面的URL
iframe.setAttribute('sandbox', 'allow-same-origin allow-scripts');
iframe.style.width = '100%';
iframe.style.height = '100%';
this.externalPage.nativeElement.appendChild(iframe);
}
}
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class ExternalPageController {
@RequestMapping("/external-page")
public ModelAndView redirectToExternalPage() {
return new ModelAndView("redirect:http://example.com/external-page"); // 替换为要加载的外部页面的URL
}
@GetMapping("/external-page-content")
@ResponseBody
public String getExternalPageContent() {
// 通过HTTP请求获取外部页面的内容
// 返回外部页面的内容
return "Hello, External Page!
";
}
}
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ExternalPageComponent } from './external-page/external-page.component';
const routes: Routes = [
{ path: 'external-page', component: ExternalPageComponent }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
通过以上步骤,你可以在Angular中创建一个组件来加载外部页面,并在Spring中通过控制器返回外部页面的内容。这样,你就能在不暴露URL的情况下加载外部页面。