WebAssembly碰到的问题及解决方案; WebAssembly如果缓冲区大小大于4KB,则不允许在主线程上使用。使用WebAssembly.instantiate。

​
WebAssembly.Instance is disallowed on the main thread, if the buffer size is larger than 4KB. Use WebAssembly.instantiate.

解决方法:未解决



跨域方法:https://www.cnblogs.com/fundebug/p/10329202.html

CROS跨域常用header
  Access-Control-Allow-Origin: 允许哪些ip或域名可以跨域访问 *允许全部
  Access-Control-Max-Age: 表示在多少秒之内不需要重复校验该请求的跨域访问权限
  Access-Control-Allow-Methods: 表示允许跨域请求的HTTP方法,如:GET、POST、PUT、DELETE
  Access-Control-Allow-Headers: 表示访问请求中允许携带哪些Header信息,如:Accept、Accept-Language、Content-Language、Content-Type

普通<script>标签是可以加载跨域脚本的,参考:https://www.jianshu.com/p/a45c9d089c93


//错误二,SharedArrayBuffer未定义

Uncaught ReferenceError: SharedArrayBuffer is not defined

解决方法:

1.响应 COOP 和 COEP 头部
配置跨域隔离
//需要设置两个标题来跨源隔离您的站点:

参考资源: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

//
cross-origin-resource-policy:cross-origin

复制代码
优点:支持 Chrome,Firefox 等大部分浏览器,属于目前的长期解决方案。
缺点:影响窗口/iframe 回调型应用(第三方登录、付款等),影响 script 标签加载跨域资源。


2.SharedArrayBuffer 降级 ArrayBuffer
//if(!(crossOriginIsolated in window))
if(!crossOriginIsolated) {
  SharedArrayBuffer = ArrayBuffer;
}
​优点:简单粗暴

缺点:可能影响功能




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值