Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将填充的JSONp作为不可执行文件加载,例如字符串或类似于常规JSON的数据?_Javascript_Jquery_Json_D3.js_Jsonp - Fatal编程技术网

Javascript 如何将填充的JSONp作为不可执行文件加载,例如字符串或类似于常规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类型,没有嗅探

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

  • 仅为jsonp提供类似于填充的服务,例如:

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

我是否可以像加载CSV文件一样,将其作为字符串加载,就像加载平面文本文件一样?然后我可以用简单的正则表达式切掉jsonp填充,然后将字符串解析为JSON

jQuery和D3库已经可以用于此目的,它们都具有文件加载功能


大多数请求将来自同一个域,但我还需要介绍一些情况,其中一个调用可能来自不同的子域。我个人没有直接访问服务器端配置的权限,但我可能能够及时获得一些简单的更改。

正如一位评论员所建议的,我要做的是构建一个简单的服务器端代理,它获取数据并使用所需的规范(即CORS头或其他任何您需要的规范)将其返回。 这假定您可以访问能够运行此工具的环境。
除此之外,或者由其他人更改标题,您没有其他选择…

JSONP服务器是否与您的页面位于同一来源?(如果是这样,只需正常使用AJAX获取并读取即可。)如果不是,您可以配置JSONP发送服务器来提供服务吗?或者您可以设置一个反向代理来获取资源服务器端,然后在与页面相同的源上重新服务它吗?这些是典型的解决方案。我忘了说,说得好。它的来源基本相同,但可能需要在同一域的不同子域之间访问。我在这上面加了一点。