2012-06-05 17 views
1

我有一个模板系统,我试图使用我的Phonegap应用程序,该应用程序使用jQuery和$ .get()函数。

$.get('templates/' + name + '.html', someFunctionHere(){});

当我运行的应用程序作为本地主机上的服务器,并查看它通过Chrome或Safari模板系统完美的作品。
当我通过iOS模拟器上的Phonegap运行应用程序时,它不起作用。没有文件返回并且“someFunctionHere()”不运行。
重要注意事项:当我在iOS模拟器下使用Mobile Safari查看由本地主机提供的页面时,它也不起作用。

对我而言,这听起来像Mobile Safari和Phonegap使用的WebKit浏览器不允许访问本地文件?这感觉完全不正确,但这就是它的外观。

有没有人遇到过这个问题之前,或知道一种方法来解决它?

+0

您通常不能从本地文件系统获得'.ajax'文件('.get'只是'.ajax'的一个快捷方式)。它必须指向某种网络服务器。 – Blazemonger

回答

2

我认为safari不支持默认打开的异步调用,您需要关闭异步模式才能使其在Safari中运行。

+0

就是这样!谢谢! –

+0

应该指出答案,我必须切换到使用$ .ajax并手动指定'async:false'才能使其工作。 –

0

可能涉及:http://developer.mozilla.org/en/http_access_control

而不是使用本地主机从文件访问的文件://协议,它应该工作,这是在Safari /移动Safari浏览器跨域限制。

+0

这需要知道跨多个平台的文件://位置(我们正在瞄准iOS,Android和Blackberry)。必须有更好的方式来做到这一点。 –

0

您是否尝试将$ .get的类型参数设置为'text'?这对我有效。如果你不$ .get会尝试猜测它,并在我的情况下,它猜对了它。

相关问题