【发布时间】:2011-08-27 09:19:02
【问题描述】:
我在静态文件服务器 - GitHub Pages 上提供我的 JSONP JavaScript 文件。
这意味着我无法动态地在服务器上设置 JSONP 回调函数名称...
header('Content-Type: text/javascript; charset=utf8');
$data = '{ "foo":"bar" }'; // json string
echo $_GET['callback'] .'('.$data.');'; // function name set via ?callback=xyz
jQuery.ajax() 有一个jsonpCallback 参数来定义一个静态回调函数名称。所以我可以提供一个 javascript 文件,例如test-jsonp.js 内容如下:
静态示例 - JavaScript 文件
jsonpCallbackABC({ "foo":"bar" });
然而 jQuery 文档表明 static 不太理想。
http://api.jquery.com/jQuery.ajax/
jsonpCallback
指定回调函数名称 JSONP 请求。这个值将是 使用而不是随机名称 由 jQuery 自动生成。它 最好让 jQuery 生成一个 唯一的名称,因为它会更容易 管理请求并提供 回调和错误处理。你可以 想要指定回调时 想要启用更好的浏览器缓存 GET 请求数。
有人可以详细介绍一下静态 JSONP 函数名称的缺陷吗?
【问题讨论】:
-
具体来说,我希望有人对任何安全问题发表评论。
标签: jquery static github jsonp