我如何加载填充JSON作为一个不可执行的,例如字符串或数据像常规JSON

How can I load padded JSONp as a non-executable, e.g. a string or data like regular JSON?

本文关键字:JSON 可执行 字符串 常规 数据 加载 何加载 填充 一个      更新时间:2023-09-26

我可能会遇到一个棘手的问题,这是由于团队和组织之间发布周期的复杂混合。显然,我正在为潜在问题寻找一个更好的长期解决方案,但我可能不得不处理一个短暂的时期(几天到一个月之间,取决于我无法控制的组织因素),其中一些客户端javascript需要从一个源访问一些JSON,同时:

  • 只像json一样填充,例如:

    window['callback']({ "key": "value", "more": ["json", "data" ] });
    
  • 只提供json(不可执行)MIME类型,no_sniff,这意味着Chrome和各种其他浏览器将阻止它作为javascript函数调用执行。

我是否可以加载它,如果它是一个平面文本文件,就像我如果它是一个CSV,作为一个字符串?然后我可以用简单的正则表达式截断JSON填充,然后将字符串解析为JSON。

库jQuery和D3已经可用,它们都有文件加载功能。

大多数请求将来自同一域,但我也需要涵盖调用可能来自不同子域的某些情况。我个人没有直接访问服务器端的配置,但可能能够得到一些简单的更改由人做及时。

正如一位评论员所建议的那样,我要做的是构建一个简单的服务器端代理,它可以获取数据并将所需的规格(即CORS标头或您需要的任何其他规格)提供回去。这假定您可以访问能够运行此工具的环境。除了这个或者让别人修改标题,你没有其他的选择…