我们用于web queries在Excel中检索数据以进行报告。这些Web查询在Excel 2007、2010、2013和2016中正常工作。 但是在Mac Excel 2016中使用时,它将失败。
我们使用界面执行这些网络查询VBA并检索由Spring REST界面生成的数据。
我已经尝试使用http GET代替,http POST并尝试通过UI执行Web查询(“使用.iqy文件使用数据”->“获取外部数据”->“运行保存的查询” )。 而且错误似乎与内容无关(尝试使用非常简单的html;
col1 |
value1 |
使用Wireshark分析流量时,REST调用的响应是正确的(http 200具有正确的内容)。
使用'.iqy'文件通过UI导入报告的错误:"cannot locate the internet server or proxy server"。使用VBA执行网络查询时出错:"Error 1004 Application-defined or Object-defined error"。
有谁知道会导致这种行为的原因吗?
找到原因:Spring MVC(REST)设置了一些默认标头。其中之一是X-Content-Type-Options: nosniff。我们生成一些REST响应数据的方式导致未设置Content-Type标头。
Mac Excel无法确定内容类型(由于X-Content-Type-Options:nosniff选项)。
可以通过不设置X-Content-Type-Options标头或显式设置Content-Type标头来解决。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。