Javascript 如何将填充的JSONp作为不可执行文件加载,例如字符串或类似于常规JSON的数据?
我可能会遇到一个棘手的问题,因为团队和组织之间的组织发布周期存在复杂的混乱。显然,我正在为根本问题寻找一个更好的长期解决方案,但我可能需要处理一段时间(几天到一个月,取决于我无法控制的组织因素),其中一些客户端javascript需要从源访问一些JSON,同时:Javascript 如何将填充的JSONp作为不可执行文件加载,例如字符串或类似于常规JSON的数据?,javascript,jquery,json,d3.js,jsonp,Javascript,Jquery,Json,D3.js,Jsonp,我可能会遇到一个棘手的问题,因为团队和组织之间的组织发布周期存在复杂的混乱。显然,我正在为根本问题寻找一个更好的长期解决方案,但我可能需要处理一段时间(几天到一个月,取决于我无法控制的组织因素),其中一些客户端javascript需要从源访问一些JSON,同时: 仅为jsonp提供类似于填充的服务,例如: window['callback']({ "key": "value", "more": ["json", "data" ] }); 只为它提供json(不可执行)MIME类型,没有嗅探
- 仅为jsonp提供类似于填充的服务,例如:
window['callback']({ "key": "value", "more": ["json", "data" ] });
- 只为它提供json(不可执行)MIME类型,没有嗅探,这意味着Chrome和其他各种浏览器将阻止它作为javascript函数调用执行
大多数请求将来自同一个域,但我还需要介绍一些情况,其中一个调用可能来自不同的子域。我个人没有直接访问服务器端配置的权限,但我可能能够及时获得一些简单的更改。正如一位评论员所建议的,我要做的是构建一个简单的服务器端代理,它获取数据并使用所需的规范(即CORS头或其他任何您需要的规范)将其返回。 这假定您可以访问能够运行此工具的环境。
除此之外,或者由其他人更改标题,您没有其他选择…JSONP服务器是否与您的页面位于同一来源?(如果是这样,只需正常使用AJAX获取并读取即可。)如果不是,您可以配置JSONP发送服务器来提供服务吗?或者您可以设置一个反向代理来获取资源服务器端,然后在与页面相同的源上重新服务它吗?这些是典型的解决方案。我忘了说,说得好。它的来源基本相同,但可能需要在同一域的不同子域之间访问。我在这上面加了一点。