我正在开发一个小型HTML5网络应用程序,用户可以使用他们的浏览器离线使用,跨平台.他们将在CD或USB-Stick上接收wep应用程序,然后双击HTML文件.然后,HTML文件从同一目录/子目录本地加载CSS,JavaScript文件等……
到目前为止,一切都很好.但我还想加载一个包含JSON的文件(也是来自同一目录的本地文件),并使用该数据构建DOM的一部分.
$.getJSON("playlistcontent.json", function (json) {
//use the data...
});
在这里我遇到了着名的
Origin null is not allowed by Access-Control-Allow-Origin
错误.有很多资源,甚至相当于similar questions.但由于这是故意在本地,所提议的解决方案不起作用.
但是,由于AJAX是“异步”,我可能会有一个更“同步”或更好的方法吗? JSONP怎么样?
注意:我知道我可以在禁用安全检查的情况下启动浏览器(尤其是Chrome),但这不是我的用户的选项.
解决方法:
我会使用Felix Kling的JSONP方法.将数据文件包装在回调函数中:
(function(data) {
// Do things with your data object here
})(
// Put your data object here as the argument to the callback
);
当您将此脚本文件包含在标记中时,将自动执行回调函数.