javascript - NetSuite:从在线表单调用 RESTlet 时出现跨域问题
问题描述
我有一个在线表格来收集用户信息。在这个表单中,我想调用 NetSuite 来获取数据。我在标题上使用“授权”建立了对 RESTlet 的调用,使用邮递员测试此脚本并且它可以正常工作但是当我在在线表单(客户端脚本)上做同样的事情时,调用 https.get() 到 RESTlet,有效标题包含“授权” ') 它返回错误“错误代码:INVALID_LOGIN_ATTEMPT”(无意义错误)。我花了 2 天时间研究为什么会发生这种情况,发现问题是跨域的(我尝试使用 $.ajax 调用 RESTlet 并找到问题)。
现在,我想知道如何在从在线表单调用时传递“跨域”问题。
调用 NetSuite 从在线表单获取数据的最佳解决方案是什么?
谢谢
解决方案
即使您能够绕过 CORS 限制,如果从客户端代码调用 Restlet 也是一个巨大的安全问题,因为您将授权令牌暴露给最终用户。
一个好的方法是使用中间件“代理”您的 Restlet,例如无服务器函数(如 Google Cloud Function、AWS Lambda 等)。这将解决 CORS 问题并确保您的凭据安全。
推荐阅读
- node.js - 字符串变量填充后为空
- angular - 'MonoTypeOperatorFunction 类型的参数
' 不能分配给 'OperatorFunction 类型的参数 ' - sql - 运行带有连接日期到表名的 INSERT 语句
- python - python dict在for循环中被覆盖
- google-api - 需要什么样的应用程序进行第三方安全评估?
- asp.net-core - asp.net 核心可以像 Angular 注入一样使用注解依赖注入吗?
- oracle - SQL 错误:ORA-00904:“GENDER”:无效标识符 00904。00000 -“%s:无效标识符”
- phpmyadmin - #1064 - 您的 SQL 语法有错误;在 phpmyadmin SQL Dump --version 4.0.4.1
- socket.io - 如何将 socket.io 版本 3 与 Phaser 版本 3 一起使用?
- java - 无法安装-写入所有apks Android Studio