Excel Javascript插件获取NREL网站CSV数据遇CORS问题如何解决
问题根源
你遇到的报错是浏览器同源策略(CORS)限制导致的,Excel JS插件底层基于浏览器内核运行JS代码,直接跨域请求NREL的接口时,对方接口未返回Access-Control-Allow-Origin响应头,就会被浏览器拦截。添加mode: "no-cors"只能让请求正常发出,但你无法读取返回的响应内容,所以拿不到CSV数据。
可行解决方案
- 自建后端代理转发请求
你可以搭建一个简单的后端服务作为代理,JS插件先把请求发送到你的代理服务,由代理服务向后请求NREL的CSV接口(后端请求不受CORS限制),拿到数据后再返回给前端插件。你只需要给代理服务配置允许你插件域名的CORS响应头,即可正常读取返回的CSV内容存储到变量中。 - 确认NREL接口的前端适配方案
检查你调用的NREL接口是否支持JSONP格式,或者是否提供API密钥的跨域白名单配置入口,如果有对应配置项,按官方要求配置后即可直接前端请求拿到数据。 - 使用Office Add-in专属请求能力
部分Office插件运行时提供了不受浏览器CORS限制的HTTP请求API,你可以查阅Excel插件官方文档,调用这类专属API发起请求,即可绕过跨域限制直接读取CSV数据。
内容的提问来源于stack exchange,提问作者user3238216
相关产品推荐
相关产品推荐

