我正在尝试在网站上实施 google pay。google pay 的外部库是从 pay.google.com 加载的。在这个 google 脚本中,他们调用浏览器 api PaymentRequest()。这个 api 内置于流行的浏览器中,如 Safari、Chrome 等。
我有 google pay 工作,但它在 Firefox 上不起作用。加载外部脚本时,它调用 PaymentRequest 并在控制台中显示以下错误:ReferenceError: PaymentRequest is not defined
链接到谷歌支付脚本 https://pay.google.com/gp/p/js/pay.js
Mozilla Firefox 官方网页声明在安全上下文中支持 PaymentRequest。 https://developer.mozilla.org/en-US/docs/Web/API/Payment_Request_API/Using_the_Payment_Request_API
在我看来,PaymentRequest 在 Firefox 中不受支持并且不起作用。我错过了什么?
我编写了一个 Angular 应用程序,其目的是一个移动仓库管理系统。该应用程序主要用于带有集成条形码扫描仪的移动计算机。它们是霍尼韦尔 TC60。该设备安装了 Android 8 操作系统和 Chrome。霍尼韦尔设备附带可以用 JavaScript 实现的条形码 API。它在端口 8080 上进行回调。
前几天,我注意到 Web 控制台中出现了来自 Chrome 的错误:[弃用] 该网站从网络请求了一个子资源,由于其用户的特权网络位置,该网站只能访问该子资源。这些请求将非公共设备和服务器暴露在互联网上,增加了跨站点请求伪造 (CSRF) 攻击和/或信息泄露的风险。为了减轻这些风险,Chrome 不赞成从非安全上下文发起对非公共子资源的请求,并将在 Chrome 92(2021 年 7 月)中开始阻止这些请求。有关更多详细信息,请参阅https://chromestatus.com/feature/5436853517811712 。
如果我理解正确的话,到 7 月份,集成条形码扫描仪 API 将变得毫无用处,公司将有数千美元的设备将不再与集成扫描仪 API 一起使用。请求是从使用公共安全域的设备向私有 IP 发出的,但它是本地主机。您不会认为 localhost 可能存在漏洞。因为实际上没有拨打外部电话。
我不确定这个有针对性的“功能”是否会破坏我的扫描仪。我应该假设它会吗?设备上没有选项要求安全的本地连接,如果这有意义的话。
考虑以下javascript
var test = ['1', '2', '3'];
Run Code Online (Sandbox Code Playgroud)
在控制台中,键入
test.indexOf('1') > -1;
Run Code Online (Sandbox Code Playgroud)
结果会是真的。
现在添加基本的 Not 运算符!。
!test.indexOf('1') > -1;
Run Code Online (Sandbox Code Playgroud)
结果也是真的,但我预计结果是假的。为什么是真的?