webassembly——同源策略问题的处理(浏览器不能加载本地资源的问题)

news2024/9/20 10:47:42

在这里插入图片描述

原因:在用chatGPT生成可视化地图前端文件后,打开不能正常显示

WebAssembly是一种新的二进制代码格式,它可以提供更高的性能和更好的安全性。WebAssembly遵循同源策略,这意味着只有与运行WebAssembly代码相同域名下的JavaScript代码才能与之交互。

为了解决WebAssembly同源策略问题,可以使用以下方法:

  1. 使用CORS(跨域资源共享)机制允许其他域名的JavaScript代码访问WebAssembly模块。

  2. 将WebAssembly模块放置在子域名下,并通过设置正确的CORS头来允许主域名下的JavaScript访问。

  3. 使用代理服务器将WebAssembly模块转发到同一域名下的JavaScript代码。

  4. 将WebAssembly模块打包在JavaScript文件中,以便可以在同一域名下访问。

需要注意的是,在处理WebAssembly同源策略问题时,必须确保不会危及应用程序的安全性。因此,在实施任何解决方案之前,请仔细考虑所有可能的风险并进行适当的测试。


webassembly——同源策略问题的处理(浏览器不能加载本地资源的问题)

当你希望浏览器运行本地上的wasm模块时(或者使用fetch对获取本机的URL资源时),你可能会碰到以下问题:

已拦截跨源请求:同源策略禁止读取位于 file:///C:/Users/95461/Desktop/%E6%95%99%E7%A8%8B/index.wasm 的远程资源。(原因:CORS 请求不是 http)。
TypeError: NetworkError when attempting to fetch resource.

这意味者你是在本地直接打开html,并在该页面中企图加载本地文件夹下的wasm文件,因而违背同源策略。
参考资料:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS/Errors/CORSRequestNotHttp

分析:在加载wasm模块时,会将指向wasm模块的URL作为fetch()的参数 。在一些浏览器中,使用fetch()直接获取同与html文件同一文件夹下的本地资源时,会触发同源策略问题。

解决途径:

1、使用Microsoft Edge打开本地的“包含加载wasm模块”的html页面。(我当前版本为Microsoft Edge 44.18362.449.0) 。
不是所有浏览器都有同样严格的同源策略,使用edge浏览器可以避免开发过程中碰到此类问题。

2、打开本地http服务器。将页面涉及的资源放置到本地服务器上,再在浏览器上以http://打开(而非file://)。
我一般使用xampp工具箱,挺方便的。将页面资源全部放在xampp指定的文件夹下,具体使用方法请自行查找。

3、对所使用的浏览器进行设置。
以下转载于:https://blog.51cto.com/lindianli/1557510

Chrome:

1、
(1)得到Chrome的安装路径,例如:C:\Program Files\Google\Chrome\Application
(2)在命令行窗口,输入安装路径,加上–allow-file-access-from-files参数,例如:

Chrome installation path\chrome.exe --allow-file-access-from-files

重新启动浏览器即可。
2、
在Chrome的快捷方式,右键->属性->目标的文本框中加上参数 --allow-file-access-from-files
例:“C:\Program Files \Google\Chrome\Application\chrome.exe” --allow-file-access-from-files
(我没试过)

Firefox:

1、在浏览器的地址栏输入about:config,回车
2、在过滤器(filter)中搜索security.fileuri.strict_origin_policy
3、将security.fileuri.strict_origin_policy设置为false
4、关闭目前开启的所有Firefox窗口,然后重新启动Firefox。
(亲测有效)
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/432440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux --- 常用命令

一、常用命令 1.1、常用命令演示 在这一部分中,我们主要介绍几个常用的命令,让大家快速感受以下Linux指令的操作方式。主要包含 以下几个指令: 1.2、Linux命令使用技巧 在我们使用Linux系统命令时,可以使用以下几个技巧&#x…

丹麦PR electronics信号隔离器3185A1 3185A2安全栅

应用 1:1 标准电流信号隔离,信号范围 0(4)...20 mA。标准 DIN 导轨安装。无论在技术或是成本上,都是电流信号电气隔离的选择。能有效抑制浪涌电流,保护控制系统远离信号噪声和瞬变的影响。消除接地环路和测量浮地信号。安装于安全区域或 Zon…

03、Cadence使用记录之超多引脚元器件的快速创建方法(OrCAD Capture CIS)

03、Cadence使用记录之超多引脚元器件的快速创建方法(OrCAD Capture CIS) 参考的教程是B站的视频:allegro软件入门视频教程全集100讲 前置教程: 01、Cadence使用记录之新建工程与基础操作(原理图绘制:OrC…

个人建议:真的不要去小公司...

软件测试人员如果想要有更好的发展真的不要去小公司! 为什么? 小公司的测试团队相对较小,往往只有一两个人,缺乏资源和技术支持,难以优化测试流程和提高测试效率。 小公司一般缺乏完善的软件开发流程和质量管理体系&a…

基于LSTM神经网络的通用股票预测源代码+模型+数据集

基于神经网络的通用股票预测模 下载地址:基于LSTM神经网络的通用股票预测源代码模型数据集 0 使用方法 How to use 使用getdata.py下载数据,或者使用自己的数据源,将数据放在stock_daily目录下 使用data_preprocess.py预处理数据&#xff…

基于RK3568的Linux驱动开发——GPIO知识点(一)

authordaisy.skye的博客_CSDN博客-Qt,嵌入式,Linux领域博主系列基于RK3568的Linux驱动开发—— GPIO知识点(二)_daisy.skye的博客-CSDN博客 gpio bank RK3568 有 5 组 GPIO bank:GPIO0~GPIO4,每组又以 A0-A7、B0-B7、 C0-C7、 D0…

CSS基础样式

1.高度和宽度 .c1{height:300px;width:500px; } 注意事项: 宽度,支持百分比 行内标签:默认无效 块级标签:默认有效(右侧区域就算是空白,也不给占用) 2.块级和行内标签 css样式:标签…

软件工程实验:用例图设计

目录 前言 实验目的 实验要求 实验步骤 结果展示 总结 前言 软件工程导论实验是一门旨在培养学生掌握软件开发过程中的基本方法和技能的课程。本实验的主题是用例图设计,用例图是一种描述系统功能需求的图形化工具,它可以帮助分析和设计系统的行为…

初识Tkinter弹窗

Tkinter弹窗 Tkinter是什么 Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面&#xff…

【蓝桥杯省赛真题17】python删除字符串 青少年组蓝桥杯python编程省赛真题解析

目录 python删除字符串 一、题目要求 1、编程实现 2、输入输出 二、解题思路

Qt创建SDK库(dll动态库)并调用SDK库(dll动态库)

Qt创建SDK库(dll动态库)并调用SDK库(dll动态库) 一、项目场景 在日常的项目中,我们经常会遇到调用别人的数学库、线程库、图形库等操作。这些库通常就被称为SDK,SDK全称是Software Development Kit(软件开发工具包),…

【C++ 五】结构体

结构体 文章目录 结构体前言1 结构体基本概念2 结构体定义和使用3 结构体数组4 结构体指针5 结构体嵌套结构体6 结构体做函数参数7 结构体中 const 使用场景8 结构体案例8.1 案例一8.2 案例二 总结 前言 本文包含结构体基本概念、结构体定义和使用、结构体数组、结构体指针、结…

gitlab CI CD基础概念

gitlab CI CD基础概念 本文目录 gitlab CI CD基础概念基础概念Pipelines:流水线JobsStage .gitlab-ci.yml使用模式1:官网gitlab 本地gitlab runner使用模式2:docker gitlab docker gitlab runner 基础概念 开发模式转变:瀑布模…

【MySQL】(5)聚合函数

文章目录 聚合函数COUNT 函数SUM 函数AVG 函数MAX 函数 MIN 函数 group by 子句简介示例:scott 数据库单列分组多列分组 having 子句总结 聚合函数 在 MySQL 中,聚合函数是用于计算多行数据的统计信息的函数,例如总和、平均值、最大值、最小…

图扑数字孪生工厂合集 | 智慧工厂可视化,推动行业数字化转型

前言 图扑软件基于 HTML5(Canvas/WebGL/WebVR)标准的 Web 技术,满足了工业物联网跨平台云端化部署实施的需求,以低代码的形式自由构建三维数字孪生、大屏可视化、工业组态等等。从 SDK 组件库,到 2D 和 3D 编辑&#…

LeetCode算法小抄--花式遍历二叉树

LeetCode算法小抄--花式遍历二叉树花式遍历二叉树翻转二叉树[226. 翻转二叉树](https://leetcode.cn/problems/invert-binary-tree/)填充节点的右侧指针[116. 填充每个节点的下一个右侧节点指针](https://leetcode.cn/problems/populating-next-right-pointers-in-each-node/)将…

OpenCV实例(一)人脸检测

OpenCV实例(一)人脸检测 1.人脸检测和识别概述2.使用OpenCV进行人脸检测2.1静态图像中的人脸检测2.2视频中的人脸检测 作者:Xiou 1.人脸检测和识别概述 计算机视觉使很多任务成为现实,其中两项任务就是人脸检测(在图…

psql Centos7安装postgresql-12

之前在centos7上下的postgresql,它的数据库实例在 “var/lib/pgsql/” 下。这就导致了系统用户的"postgres"的家目录跟postgresql数据库目录不在同一目录下。因此,今天趁着有闲暇时间把数据库装到"postgres"目录下,顺便把…

罗丹明荧光染料标记叶酸,FA-PEG2000-RB,叶酸-聚乙二醇-罗丹明; Folic acid-PEG-RB

FA-PEG-RB,叶酸-聚乙二醇-罗丹明 中文名称:叶酸-聚乙二醇-罗丹明 英文名称:FA-PEG-RB, Folic acid-PEG-RB 性状:粉红色固体或液体,取决于分子量 溶剂:溶于水和DMSO、DMF等常规性有机溶剂 保存条件:-2…

学习系统编程No.17【vscode实战】

引言: 北京时间:2023/4/11/7:25,昨天11点洗澡,洗完直接睡,导致现在头发愈发不能看,So,平头时刻将要来临,头发太长真的很不方便,昨天已经更文啦!这个星期一定…