Javascript 是否可以发出安全的JSONP请求?
我只需要支持 我必须依赖外部服务来提供JSONP数据,我不拥有该服务,它也不允许 我感到非常不安,不得不信任来自外部服务器的JSONP请求,因为它们可以在我的终端上运行任意代码,这将允许它们跟踪我的用户,甚至窃取他们的信息 我想知道是否有任何方法可以创建一个同样安全的JSONP请求 (相关:但不适用于新浏览器) 注意:我以问答的方式提问/回答,但我对其他想法非常开放。是的强> 这是可能的。一种方法是使用。WebWorkers中运行的代码无法访问页面正在运行的DOM或其他JavaScript代码 您可以创建一个WebWorker并使用它执行JSONP请求,然后在完成后终止它 过程是这样的:Javascript 是否可以发出安全的JSONP请求?,javascript,jsonp,Javascript,Jsonp,我只需要支持 我必须依赖外部服务来提供JSONP数据,我不拥有该服务,它也不允许 我感到非常不安,不得不信任来自外部服务器的JSONP请求,因为它们可以在我的终端上运行任意代码,这将允许它们跟踪我的用户,甚至窃取他们的信息 我想知道是否有任何方法可以创建一个同样安全的JSONP请求 (相关:但不适用于新浏览器) 注意:我以问答的方式提问/回答,但我对其他想法非常开放。是的 这是可能的。一种方法是使用。WebWorkers中运行的代码无法访问页面正在运行的DOM或其他JavaScript代码 您可
- 从具有要请求的URL的blob创建WebWorker
- 使用
加载带有本地回调的JSONP请求importScripts
- 当执行回调时,将消息发回脚本,脚本将使用数据执行实际的回调消息
jsonp("http://jsfiddle.net/echo/jsonp", {
"hello": "world"
}, function (response) {
alert(response.hello);
});
此实现不处理其他一些问题,但它阻止了对DOM或页面上当前JavaScript的所有访问,您可以创建一个
这应该适用于IE10+、Chrome、Firefox和Safari以及移动浏览器
jsonp("http://jsfiddle.net/echo/jsonp", {
"hello": "world"
}, function (response) {
alert(response.hello);
});