相关问题
 #鸿蒙通关秘籍#如何解决Web组件本地资源跨域问题? 
1345浏览  • 1回复 待解决
HarmonyOS Web组件本地资源跨域问题 
781浏览  • 1回复 待解决
HarmonyOS Web本地资源跨域加载异常 
851浏览  • 1回复 待解决
Web组件如何访问跨域资源? 
1242浏览  • 1回复 待解决
HarmonyOS web组件关闭跨域拦截 
937浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何为Web组件设置网络拦截器并提供自定义响应? 
1438浏览  • 1回复 待解决
HarmonyOS Web组件无法跨域加载图片资源 
898浏览  • 1回复 待解决
HarmonyOS web资源跨域问题 
1224浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS环境中配置和使用全局HTTP拦截器? 
1438浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NXET中设置网络请求拦截器? 
1318浏览  • 1回复 待解决
HarmonyOS  web组件加载本地离线包的cookie跨域 
1289浏览  • 1回复 待解决
Axios异步请求拦截器,由于线程资源隔离,拦截器里的任务处理时会很麻烦,需要拷贝大量任务资源 
1644浏览  • 1回复 待解决
HarmonyOS rcp拦截器 
1062浏览  • 1回复 待解决
HarmonyOS  Web组件加载本地H5文件跨域 
1440浏览  • 1回复 待解决
HarmonyOS Web组件跨域请求问题 
1488浏览  • 1回复 待解决
HarmonyOS rcp请求拦截器 
1821浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS NEXT中设置luch-request的请求和响应拦截器? 
1304浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中配置h_request库的请求和响应拦截器? 
1346浏览  • 1回复 待解决
HarmonyOS  本地webView跨域方案 
2687浏览  • 1回复 待解决
HarmonyOS webview请求资源文件拦截器修改请求头信息 
953浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用Web组件预览本地PDF文件? 
1342浏览  • 1回复 待解决
HarmonyOS  Web组件加载本地资源目录resource/rawfile下的html文件,页面内https请求报跨域问题 
1599浏览  • 1回复 待解决
HarmonyOS  router有没有拦截器? 
869浏览  • 1回复 待解决
HarmonyOS 导航路由拦截器如何实现 
1100浏览  • 1回复 待解决
#鸿蒙通关秘籍#如何实现请求与响应的全局拦截器来处理响应和错误信息? 
1448浏览  • 1回复 待解决





















在鸿蒙平台中,Web组件可以为加载的资源设置域名映射,通过onInterceptRequest接口拦截并替换请求,不让其被跨域策略阻挡。
typescript import { webview } from '@kit.ArkWeb';
@Entry @Component struct Index { @State message: string = 'Hello World'; webviewController: webview.WebviewController = new webview.WebviewController();
schemeMap = new Map([ ["https://www.example.com/index.html", "index.html"], ["https://www.example.com/js/script.js", "js/script.js"], ]);
mimeTypeMap = new Map([ ["index.html", 'text/html'], ["js/script.js", "text/javascript"] ]);
build() { Row() { Web({ src: "https://www.example.com/index.html", controller: this.webviewController }) .onInterceptRequest((event) => { if (this.schemeMap.has(event.request.getRequestUrl())) { let rawfileName = this.schemeMap.get(event.request.getRequestUrl())!; let mimeType = this.mimeTypeMap.get(rawfileName); let response = new WebResourceResponse(); response.setResponseData($rawfile(rawfileName)); response.setResponseEncoding('utf-8'); response.setResponseMimeType(mimeType); response.setResponseCode(200); response.setReasonMessage('OK'); response.setResponseIsReady(true); return response; } return null; }); } } }