Web组件加载本地html,内部使用module得方式引入了js文件,触发CORS?

Web组件加载本地沙盒中的html文件,html文件内部的script标签使用module类型,内部import一个相对路径中本地的js,调试发现触发了CORS,加载js文件失败html内部的script如下:

<script type="module"\> import PikaBridge "./core/index.js"; </script\>

这种方式的引入,能正常加载到index.js;

如何解决web组件的配置.

webDebuggingAccess = true;

.mixedMode = MixedMode.All;

.multiWindowAccess = true;

.fileAccess = true;

.javaScriptAccess = true;

咨询场景描述:web组件加载本地的html,内部依赖的js能正常导入。

阅读 670
1 个回答

跨域问题可以参考以下代码:

import web_webview from ‘@ohos.web.webview’;
        import business_error from ‘@ohos.base’;
@Entry
@Component
struct WebComponent {
        controller: web_webview.WebviewController = new web_webview.WebviewController();
        responseweb: WebResourceResponse = new WebResourceResponse()
        heads:Header[] = new Array()
        build() {
        Column() {
        Web({ src: ‘name1’+‘www.example.com’, controller: this.controller })
        .onInterceptRequest((event) => {
        if (event) {
        console.log(‘urlsda:’ + event.request.getRequestUrl())
        if (event.request.getRequestUrl().match(‘name1’)){
        let head1:Header = {
        headerKey:“Connection”,
        headerValue:“keep-alive”
        }
        let head2:Header = {
        headerKey:“Cache-Control”,
        headerValue:“no-cache”
        }
        let length = this.heads.push(head1)
        length = this.heads.push(head2)
        this.responseweb.setResponseHeader(this.heads)
        this.responseweb.setResponseData(‘resource://rawfile/index.html’)
        this.responseweb.setResponseEncoding(‘utf-8’)
        this.responseweb.setResponseMimeType(‘text/html’)
        this.responseweb.setResponseCode(200)
        this.responseweb.setReasonMessage(‘OK’)
        console.log(‘urlsda:’ + event.request.getRequestUrl())
        }
        }
        return this.responseweb
        })
        }
        }
        }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进